{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Examples and Exercises from Think Stats, 2nd Edition\n",
    "\n",
    "http://thinkstats2.com\n",
    "\n",
    "Copyright 2016 Allen B. Downey\n",
    "\n",
    "MIT License: https://opensource.org/licenses/MIT\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import print_function, division\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "\n",
    "import random\n",
    "\n",
    "import thinkstats2\n",
    "import thinkplot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Least squares\n",
    "\n",
    "One more time, let's load up the NSFG data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import first\n",
    "live, firsts, others = first.MakeFrames()\n",
    "live = live.dropna(subset=['agepreg', 'totalwgt_lb'])\n",
    "ages = live.agepreg\n",
    "weights = live.totalwgt_lb"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The following function computes the intercept and slope of the least squares fit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from thinkstats2 import Mean, MeanVar, Var, Std, Cov\n",
    "\n",
    "def LeastSquares(xs, ys):\n",
    "    meanx, varx = MeanVar(xs)\n",
    "    meany = Mean(ys)\n",
    "\n",
    "    slope = Cov(xs, ys, meanx, meany) / varx\n",
    "    inter = meany - slope * meanx\n",
    "\n",
    "    return inter, slope"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Here's the least squares fit to birth weight as a function of mother's age."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(6.8303969733110526, 0.017453851471802753)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inter, slope = LeastSquares(ages, weights)\n",
    "inter, slope"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The intercept is often easier to interpret if we evaluate it at the mean of the independent variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.2667432601061215"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inter + slope * 25"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "And the slope is easier to interpret if we express it in pounds per decade (or ounces per year)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.17453851471802753"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "slope * 10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The following function evaluates the fitted line at the given `xs`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def FitLine(xs, inter, slope):\n",
    "    fit_xs = np.sort(xs)\n",
    "    fit_ys = inter + slope * fit_xs\n",
    "    return fit_xs, fit_ys"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "And here's an example."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "fit_xs, fit_ys = FitLine(ages, inter, slope)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Here's a scatterplot of the data with the fitted line."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsvWmMZGl2nne+iLixRy6Re2ZV1tJVXb3N9HCmh8PhUBoTpGya0GIBtiBCtAmK9AgwAXmBJZHWD8KAABIwLcOw4GVoU6QtixJN2aYMy9BQFOyhPRzOTDenu2eqq7v2ysp9i8yMjO1GxOcfJ586N7NziarOrMqsugcoVGbkjXu/u531Pe9x3nuJJZZYYoklFhGRxLNeQCyxxBJLLKdHYqMQSyyxxBLLI4mNQiyxxBJLLI8kNgqxxBJLLLE8ktgoxBJLLLHE8khioxBLLLHEEssjiY1CLLHEEkssjyQ2CrHEEksssTyS2CjEEkssscTySFLPegG9yPDwsL948eKzXkYsscQSy5mSt99+e8V7P/I43zkTRuHixYvyne9851kvI5ZYYonlTIlz7v7jfidOH8USSyyxxPJIYqMQSyyxxBLLI4mNQiyxxBJLLI8kNgqxxBJLLLE8ktgoxBJLLLHE8khioxBLLLHEEssjiY1CLLHEEkssjyQ2CrHEEksssTyS2CjEEkssscTySE7MKDjnfsM5t+Sc+94+f/uPnXPeOTd8UsePJZZYYonl8eUkI4XfFJGf2Puhc+68iPwZEXlwgseOJZZYYonlCeTEjIL3/usisrbPn/4LEfmbIuJP6tixPBtpNkXW1kRqtWe3hs1NkfV1kXb75I+1va3n22qd/LFiieVpyVMlxHPO/XkRmfXev+uce5qHjuUpyNqaiPcijYZINiuSeMoVq3pdpFrVn70XKZdP7ljttsjGhv08Onpyx4ollqcpT80oOOfyIvK3ReRf7XH7r4jIV0REpqenT3BlsRyXJJOqIBMJkWdh85PJ/X8+CXFO/3n/9I1fLLGcpDzNSOElEbkkIkQJ50TkHefcD3rvF/Zu7L3/qoh8VUTkrbfeilNNn1D8zhU8SWU9NKRRQibzbIxCOi0yPKyGKZc72WMlk3qsMNSoKJZYnhd5akbBe/++iDwKsp1z90TkLe/9ytNaw4sqrZbI6qr+PDSkyvMkJJkUKRROZt+9Sjp9cue3V4JA/8USy/MkJwlJ/W0R+SMRueace+ic+7mTOlYsh0ujoZGC95p3jyWWWGI5SE4sUvDe/9QRf794UseOZbfkcoYIOum0SiyxxHK25UyM44zlk0kQiIyPP+tVnA5pNrXmkM8/m7pHLLGcdomNQiwvjERrK62WyODgs11PLLGcRonBdLG8MOIjGLZu99mtI5ZYTrPEkUIsL4xkMiJ9fZo+KpWe9WpiieV0SmwUYnmhpFh81iuIJZbTLXH6KJZYYokllkcSG4VYYoklllgeSWwUzqB0u0qvEEssscRy3BLXFM6YdLsiy8sinY5SSvT3P+sVxRJLLM+TxJHCGZN2Ww2CiDZixRJLLLEcp8RG4YxJEChVRTIZwypjiSWW45c4fXTGxLm4EzeWWGI5OYkjhVhiiSWWWB5JbBRiiSWWWGJ5JLFRiCWWWGKJ5ZHENYVYYjlD0miIVCoiqZRIuRzPh47l+CV+pGI5VDqd3eyip0lO89pOSra3tVel1YohybGcjMSRQiwHSqWiE9uCQIfUn6ahNKwtlRIZGTldaztJyWbVGCQST28WdSwvlsRGIZYDpdHQ/8NQvfLUKXpaWFu7rf+C4Nmu52lJoaCGwbk4dRTLyUj8WMXyMWm11AsvFFT55HKnyyCIKAW2c6ogXxSDgCSTz84g1GpmkGN5PuXEXnXn3G+IyJ8VkSXv/Rs7n/1nIvLnRKQlIrdF5Ge995WTWkMsjy9hKLKyoj/n8yITE892PQdJsRjPRnjasrWl/0S0yJ3NPtv1xHIycpL+xm+KyE/s+ez3ReQN7/2nReQjEfmlEzx+LE8g8Crt/TmWWOJn48WQEzMK3vuvi8jans++5r1v7/z6TRE5d1LHj+XxpdnU9EAyqSmjk2Jg7XRE1tdFNjYORw/V6yJra89XuoJz39x81it5fOnr0+ixWNT/T0KaTb3ntdrJ7D+Wo+VZZor/qoj842d4/Fj2yPq6DbTv61PjcBKytaUKX0RrFYXCx7fpdnU9IqooTmsa63Gk2xW5d0/Pvb/fyA3PiiQSIgMDJ3sMnsFGQ2dqn9QzGMvB8kzKVc65vy0ibRH5nw/Z5ivOue84576zvLz89Bb3AgsvYCJxshDP6It+0EsfRdc8L4qhVtOaTaslUq0+P+d1nMI9TyRidNWzkqceKTjnfka0AP1j3h+cPPDef1VEvioi8tZbb71gLUrPRoaG1ENLp0/2hSyVNEJIJNQb3E+c0/6DZvPgbbpd3QdP0WnvVQgCPfcgUKbbuM/g4zI8bM/gab+fz6s8VaPgnPsJEflbIvJl732cNTxlkkicXK54r/SSNkkmD17P5qZ6296r8nBOETEHGZDTIJmMyOiorvlxDUK7rdfjeVeUT/MZjGV/OTF/0Dn32yLyRyJyzTn30Dn3cyLy90SkJCK/75z7rnPuvz2p48dy9qTb1cigF+oKCpHVqqZkvD8bBekgeHyDUKmILC3pGNYXjdYjlqcvJxYpeO9/ap+P/4eTOl4sp0PabVXSdN0ijcbh1Azea39Eu63bDA8ffpxCQQvW/f0WLZylou3jCBxHL1r3dizPRk5Zn2osZ1k6HfNmMxmtUYjsbnoaGto/xeO9KjwRNSpHSalkXc1nSbw32G+vzV/Fol6/TCY2CLGcvMRGIZZjk27X0hvR5iaU/d7Po5JIqKKv1/eHqO4nJ2EQvNeUVCLR+zoeRzY3lelU5GADuVcKhZNZy1mUdluNaiZzuutHZ1lioxDLsQnomlZrNwVFX58q20Ti8BRPqaT/nqVsbalREFGjc9xFT/pA9v58HFKtqtIslZ5fuOvamp7j9rYW7Z/X83yWEhuFWI5V9lPqyaQig2JRA+mcdY0flzSb1iXd6VjqLpZYHldioxBLLBEplaxx7iSgkcnkyXQFR1Npz3PTV7ls6aM4SjgZiY1CLE8sc3OKGBoYEJmeftarOR5x7tmnsHqVdlvTKSKqLIeG9LPnGeefSmm0FcvJSWwUYpFO58m8roUF/X9lRWRy8vTNXOhVajXtBdjc1FpIX9/ZUDzb21bEr9fVmMXF11g+qTzHgWYsvcjKisjiopHPdbu9QUJFVAl1u1pgflyDAOaexrPjkDC04q33ve+7VjNUCwOGPom020+HWhoD4Nwnp8x4nPt+2oR7HcvxyBn17WI5Dul0VAmKaHNZt6t9Bp2OFkEHBw///qVLIrOzGmVUKr3nyvHM19bUMy8UlOfok8j6unrLyaTua31di6+9zHDO5XTbbFaV61EF4FZL97dfzwDn5pymc06S3yibFRkb058/SX49et/z+ZNnQj1O8V7X3m7r9YgBDZ9cYqPwAgsIGHoDOh3zcDEWhwleebP5eE1VUFm0WhYtbG+rAn/S9Afr5Rz4vd3WdR6mNAsFvQ6TkwadPUhQ+iL7Tx+j+5jz22sUoONIJo/HYBxHsTV631n/WZFOx1JoZ23tp1Vio/CCy+Dg7oggn9eX67BiK1253a7+32zqy1kq9VbkLBbVEEBg1+3qwB2RJx/zmM8rPxAspKWSGppstjfFiSE4qiEumqaAziMqnNtB6KVo89rw8P5GY3v745DVVkuv80nMy2auQ6t1dorsCPM4Go14POtxSWwUXkCha1fk41QRvaQOaPAKQ1VqyaS+lHjQRxmGINDGI6RSsTz+k+biGw1VbHi9JzXDuVDQ1NRBjW17z22vHDXSMmo0nFOj0+2KrK6aMSZl1It0OnqvguDw+3JUqvA0S3//yU0JfBElNgovmNRqqmDabfXSvd+NtNneVo+xUDicvE5EFU02q+kntn2SonGpZGmbfF4V2eamGpteUUAc1/uTZRKt1excGw2jn2g09G/5/OGRDsorldq/dhFde/TnWu3JvOGNDWOPTaU+Wcpqc1PvzWFT+cLQjNAnMcpbW9adfVZRbWdV4sv9Akmno155s6kv7ujo7iih3VYl0u1qKmZkRCOHvTl2Grycsxd/a+vJaSGSSfVUt7fVYDWbtq5eR1by/UzmZJUI62KKGuys6+uqxJtNkfHxg9NQR3V3H9TxTENdr3xPW1u6ll5qQ71IrWbRpcjBkUWlotelXn9yAr9GwwgUu924O/tpS2wUXiCJdurihefzxieDst/e1he70dCf9+aZE4mPe/AHefTMWu521cAcpCSidYVq1Y7Za3duEDwd1AxGsFbTY1YqqrwTCTW6GMsnlURi/1QIEUgvBq/dVlRYq6XfGxv75FFCLyNURXbXZp70OkTvedy1/PQlNgqnUDod9Zi7XfXIekXkVKvqYWWz+3tyiYQWN4FfJpPq0W1tGUT0wgVVICA5UEJrayI3bujaXn+9N+jfxob2QYShGo1q9WAPE++409FtikX9/SCabb4TlfV1S7E8acG01dJzTSTUQ92rlOh4rtV0ramUfsYYyeh6221t8Ftf1+s1Pn64kmu39b6L6PYY0L337Shh8H23e3zFY6jQgSsfJIOD+kw9Se8Kkk73dqxYTkZio3AKpdEwmB08LyLmiR7kPTOeku7W/V7KVMo+R6k1GvpzIqHHZTZytClqaUlpLVot/c4XvnC4F9/tGopmc1PXc5inimKleM2+vTfoq3O7FWe0D6DT0fPmOjypIgRV1e3q/g7Ki4+M7IacJpMfp7fG4IahXoP+/sPz7BgavhuNqqL37Sih2N1oHG8Bthfn5Lgox+PO7GcnsVE4hZLJqAJkWI2IKglQL8PD+6dhsllLaxzkkXa7qlhbLVVUiYTIxITuO52242Uyug0UGP39+t1eewkSCdtuako9yFRK9xkE+6cWksnd62Zoz/a2HhvDQqTAgHcRPadEQrd7EkgrksnoNXTu8PNMJI4+Dpz/9bpuu9/+2m09HzxrjOInUYrOaVRy0JQ2OoATCTv24wrP0Uk258XybCQ2CqdQUinNA3tvShIECcXM/V7kgQFVnAcVJKMjL7e31aODpuL8ed0GD31jQ7dJJNQrnpgQ+fKXLQpJJKwJ6yClAkEbHu7ysiqjIOitgxnaiq0tNRCFgh43kdB14AVvblphdWzsk3mquZwqusMisqMkGmVdvGiGde/+Wi29HyLWV8FEtk/qKR82+nR52WDAIyOa2nucyApj3e0e3QF91DPC39nvJzHosRyPHGkUnHOjIvIlEZkUkbqIfE9EvuO9P+YRIbFEZa8CKRSMXiGXs5zxXrTPYTlrvDsRVdSJhHn++yms6HeSSTNUzpnRcE4VSyqlLzV5dQwB/0f5aeAkihqulRXdNqpggMxiFMjLU9Td2FBl02pppMP1mZ7WdXBupJWOyk+Hoe6DwvGTSLVqcw2YrHbQvlotPQdSd92undteabd314I+iSwu6jXd3tYIbn1d19mr10+XOOdwkETHsO7XqMczxHMRBPqcxz0Hz1YONArOuR8VkV8UkbKI/ImILIlIVkT+DRF5yTn3uyLyn3vvNw/4/m+IyJ8VkSXv/Rs7n5VF5B+LyEURuScif8l7v35cJ/M8Cy+Mc6YERayTeHtbFSjb7CfJpOa0yTUf5lH39ZnSjb7M7LvREJmZ0Z8LBd2e/oeo4RoYsBw94zbz+d1rnJszxtWLF62ITQqHdWLIqK2IGGpqYcEU28qKrh2oazTKOggy22yK3LypPw8NaWTUaKjCAq11lDQaluKjPoPH32rp3/N5M5SNhsj8vK6rVNJrGIYf99q7XT0n6jQ0x9XregwiqF4lnzfqj1pN79Xqqhn3oyST0e8AIDhIomNY90s1tVrWBOmcHvs4Z1B3OpZOjSOQ3uWwR+AnReTf9d4/2PsH51xKVOH/GRH5Jwd8/zdF5O+JyP8Y+ewXReQPvPe/6pz7xZ3f/9YTrPu5kWZTX+5c7vCUQXRMZPTlgmoCOGe3e/iL2istdCZzeGfu+roaBQrPn/60eY9bW4Y6Wlkx6glgkXtf/L3KIyrZrHX1FgrWnNZqqWHL5VShXL1qw+0XFlTZJpPmhZIqO0gopCMjIzaroNlUT/cwCUPbvl7X7TFA3ltHcr1uHcnAdEX0HA7rKmbtUb4pHIN2+/E6kicnjQJkacnqPI8zHrSX48Gim0zq/5XK7lGh3Ecio+iM7+MQenJE9H4ep8F5nuVAo+C9/xuH/K0tIv/7YTv23n/dOXdxz8d/QUT+lZ2ff0tE/m95gY2C96pIUBb7NT3V6/ovGqbncvqA42HiCbPPvdLtakrDe1WkUa+STtmjOnGj+4eKgWJ0raYKanBQf04mNeeMQLWwvq5KMJ9XhlXnVJFzLmDbGw1bSz6v50hENDsr8vChKvnBQbtee5u7trb02m5vqxGs1y3XPzion0W9YlAzDKlZW7Po43H6H2hOGxzUNYDsYlZD9P4MD+u6KhUzePtFeYmERTz7RTqNhq43GlUdJrmc/vvgA71PpZI+F4elj7jvOB29RE7cTwgPnds9KjSV0muytqbHjsJwRfRebG4++WCdk+xsf56ll5rCvy8if19EtkTkvxeRHxCRX/Tef+0JjjfmvZ8XEfHez+/UK15oAWUUbfbZ2DB8eaVi3jHY/b0vPukAUjR7ZXvbuIVIIS0vq5KOolCuXfu4N+W9rqHTUeXICz40pMcbHrY8P2gbUFPkrFdX9XxYRxBoeiaZVMW5sWE1iY0NVQblsnrum5tGPLe0ZKmhWk3XQP55fd1qGqRhgkAjhv5+3Ve5rPu7dk3XGO2UHRkx+Gy9bimboziDkCDQc2219Pq2WnZu7bZxTEWPSRNgEFjEmE7r9WZsJ3BW6i08I5mMnhcGt9EwY3qQwqZj3Tk7v3pd981zw6xn9lUqGZXJ9rZ+vrKi0c5Ripr9hKEem6gOGRjQ+8Z+stnd9YTVVX1OEwlNKz5ut/zgoF6b/aLTWA6WXtBHf9V7/1865/41ERkRkZ8VNRJPYhR6FufcV0TkKyIi08/LrMc9gpKAzE1EX0oI0ba2jF6gUNCw3zl9kapV855p9jpMSF8UCrr/5WVLQeTz+v3NzY9TChCpiJi3K6Iv2rVrBuFsNnWf5bIpNDxsCtV9fbptqWSNbDStJZPGf5RM6rrW1kQePNBtr161pjSilL4+3Qals7WlyvjCBZFz53Td0eNQBG42P+79o5RZA+m4QsFoQUi5HFQIxQMXMUNP6iST0WOvrel9pG6yt1OYc+AaNxq6lmpVDdfkpG2Pc9BsmnE/rIuY89/cNPoQmvRQuJubxo81OGgQX9ZJc2S1ahHrQcJ36DZPJncr9kRCPyeC2xvFbmxYGnB8/PGNAlDqWB5PejEKPGY/KSJ/33v/rnNP3Mi/6Jyb2IkSJkSL1/uK9/6rIvJVEZG33nrruQ0Eg2D3ixVt2gJWmM+bBw6vDBxFKI583tAe0WEj5Gmj0QXHbLXMYy8W93/BUylDxVB0Hh7e3W1arxs7KUp/77GTSZE33lBvP51WRbC0pPudmrJzXltTT/TBA/WY6dmoVEReftnouenbENF9M/Qmn9c1/MAP6L6yWYPc3rmjShXStlZLFW2jIXLrljXK4QXTEZzPG6KIBkGI8YaGdivizU09Tiql3i3w3e1t/dvGhircL35Rv0+kwDmsrek9HBzUz4kEQIERAXG9iHjo2cCIpFKqEKlzDA3p97a3jUWW6ChqIKM9LpWK3otaTbcvl83YYbwPE84t2rPCM8E1Iy2WTuu5LS3pfkErFQp6Lqed7qLZ1GudTO7fCX+WpBej8LZz7msicklEfsk5VxKRJ4Wj/lMR+RkR+dWd/3/vCffzXAqeHINDUIZ4guRI8TxB4ZALJsKgI3p72+b4ghXPZFRRXr68O0LpdHYXujsdPV7U+JAWobchKih4FEy1KnLvnqGKzp9X5T89bUXHZtM8aVAoIvZyTU3p8eg9QPFjIDsd/Q50GCB+kkndX72u3+nrM+W5sKCppLU16zCu1VTxUCCmwL60pJ/Nzuq2mYxej0pFDcXEhK4rSukAPUm9rmgmUj6ka+Cewqi0WjZwZ3PTvPdiUT9Lp9VLbjTMYaAwu7Sk5z80ZEafPhTSfhSP63W9DhMTIvfv63mUSh+nKxkY0DUUCuqlr67qd6enbRBRq7UbQnuYRGHAGHJoO0CTEQFsbOi6gd8OD+vvzEw4zVKr2dqj7LlnUXoxCj8nIp8RkTve+5pzbkg0hXSoOOd+W7SoPOyceygivyxqDH7HOfdzIvJARP6tJ134aRew3I/T8UmaBsREdJJUpSLy4YfWm9DXp8qAZi6Rj3c048EvL+tnY2NWwN0bocB3hDe6uKjHAVYJp/+DB/r/6KjIlSv28OMxh6HuBxz8w4d2Peg1gEaD3gQRMwjeq2KigM38gmgRPJXSv2WzmiaqVHRN6bStH8+/WLQ0CPn6hQVd15tv6v5AKZH3zmTMYOGN9/ebARLR8xsYUOMCBLdQsHWSu//wQzVQL72k14h0HymYW7f0ukxOWporm92dDhwdVQXdaIhcv67HLRT0HjWb+u/qVWMX3dpShVouWzSFwccjp45BY11UMhn9bHHRzmdx0Z7RYtGoRh6nr4Dnu9u1UalRyWb1cyJkGvmiz/hpFeou0ajorMqRRsF7391BEf20c86LyP/rvf/fevjeTx3wpx97rBWeQQGKCTqo127RfF6VSTptqCQ84ETCxliirKLU1zQ2RSF/hYJ6xcxRXl1V5ZXNfpxsbGtL0x6Li6pI+vtVidF5DOdQpaKeZrWqhml4eHdT3MqKpXyyWUsdea/HY1uKqrWaKuiNDVWKr76q/+fzIt/6lhoh7w2tVK/rGjc2VDk2Grpu+hKIIm7eNIbQqIGan9drm0pZIbTRMKMyM6PnnE6rV00KJ4pqqlRUidODsbmp3wdZc/687uP739fPEwk95siIRj/g5hcWjB0W73t0dDd1OIZaRM9hcdEiyWZTv5tI2ExqOtD7+nbPcEapNpt6b2u1o1NAY2NqANpt/be2ptcaOnVI+g4TDACpPda4H9KNsahR0MVBfRNAWU8LYR7OxCdlyT0N0gv66L8WkSsi8ts7H/0159yPe+9/4URXdoYlmuqJjm88SgoFKwSzDxAtGIt2WxUyxdhy2SCJIjakBmhnpWKDVvr7Rb77Xf0OVA7MTGi1RD76SBVVtapKOAg0N1+pqHJeX1elQMPVw4f6t0ZDjRFFcvLpb76paQeUAh7qyooqy4UF3U82q38bGNC/RRu8YCHl+lQq+o/zW162fDy1lVbL+KHw4La2VEGVy3o9UHbvv6/XxTk9n4EB3efEhH7O94iqhofN26eQvbJi0UgY6vXP5y1V5r0et1i0FF+zaaiYRkMVcKej14S0Xj5vHnk2azUIIJp4pdQxGExz/ryuX8SMAVToFI5HRg5muu12jcai21VDRRoJFNvAgDk9h8na2m6Dx7oOkl4igig9yFENdE9TTns006v0kj76soi84b2qOefcb4nI+ye6qjMudPOCDupFIH0rFo1XiMIy09EyGd3fyopuj3fd6VhenqhgaUkV3e3bup6NDd3HzIwqP7j5V1dVeQ0MGIFas2l49GbT+iDwCvHmUHikXijABoF5t/s1OX3wga6ZhikmvdVq1gyXy2lD3OamruPKFf0b/Q94ynTClkpWlATJAnR2ddVgm/Qo3L+v656ZsWghmdT9Li3pvqpVVdLUd4AE9/ebYaMhq143JUtu+cIFVfaLi9bAlssZJLhY1Ptw7Zren7U1vS7UGejjyOXUGI2N6bFTKT2PclnrNtCez86q4sUwI92u/m111cjy9naVR4X7yjUjpx9tQhwf342EQjodPT7oJuof29u6zv7+T16EjTY4Pun41lgOll6MwociMi0i93d+Py8i753Yip4Dca63eQMIaCIR80pRptA6RJUaqaQgsIlnKyv6M3BD6CQoML/yitFBoKAwEqSoPvtZVR6Tk+rR5XKGyCG/Pz1tqZVLl8w7hvNocNCUZiKh+wI9Q06ftEU+b8XkoSFdO+mmkZHdcwu2tzVSqdfNs15d1XPu69OcPQ1riYSuKZfTfczMWBE6nbbCNR3i5bLBQPm/WrV+iGRSrzdeOUq/VtPfgd+eP2+1kGZTzxWsPBj/8XFVqhRX221dfxRgwNQyAAYU/XEa6K6+fVujttFR/f7wsKUHo9Lp6HYQEkJLcpBA0809B/E2OGgF4L11hO1t3Yb7Xixab8Xams142NsfwvNPXwS1HBoWt7bsdwSKjcdxumLpXQ7jPvo/RMSLSL+IfOCc+9bO718QkW88neW9mEIKiGY0QvlUynL5UbqD1VWtHdRqqlSGhvQFxrNjiH208Yn+Bwqp5O1HR00JpNOqTBYXrXg9Pq7IJWoOeLhMV6MASrQCF1AQ6Ha5nCqwcllTTLCSogyAITYaqvTC0BQ8aCKMB4ilblfhqnAvffCBbjc5aV3KpHgowI+MqBJfX9frOjysSnx723ouRGwwzuCgNc9RI4GvaHraYLKplCqyhw/1Gl2/bhBMIKz0haBoGQwEKologMhia0t/n53V6zY0pOt49101QvW6wn3JZ1+4sP9z1SvzKzUE4LrRrvnBQUOY0WxIdMNQJSIquKuGhg7uLmYyn4g6LBibZNJSaaTMqB8QCcZyMnJYpPBrT20VZ1y8t47aw0ZOIrwIIG0owOIJiuz2gPCaNjZU4Y6NWUcxKRuUZ7Go+0QBlUrWmEbxEeVA52wQ2MCaKFqK1AkU2igD0DHJpKUpnNN1kD5aXTU6iqkpTdfQd0Ahlwlx1CUY+J7JqHK5e1ePTUTBdRoZ0f8p7gErpQOY2gX7hCivv383LXUQaISB0Py1taVGIZezaw0N+IMHhjYaHrYOZrxguIRaLUUWBYHNgUgm9bzKZaOuwFCTx794Ufe3sGCU1qTASAvduWO9FhDazc/rulHghYI+MxhraExoADwshYNx4Z6Xy2p4iDKAOhMZLCyoIe3rM6JFIKcieu6Dg/Z87nc8oKcIqUTSV71QrfciXDMCN2yqAAAgAElEQVRSnPRp9FoPAOpLhHfWkUb7yWHcR//P01zIWZZazbzYra2jU0ekF0T0IaWr87339GH97Gct5cI4zjDU/HG5bIqlVNLPSTVRBwC9tLamypTehLU13S955+1tfXkZshNllKxWVQGKGP/QwIAVHGkm6+tTj3try5BC4+O6rpERgzwy5W111SgtqJWkUroWzm9tTRXq8rL+fWrK+gSKRT1/vEUMDcyx1aoimGhMc85qBAzoQYHXakaDEVUMUDOsrxsiBu+ZKI3GLFAw0QiC9B8Y/LU1XWe5bEZrfV09/2JRDebSkhWxl5bUoI6OWi5/fd2K41xP2EVJH62u6jpwTuihmJ3VY4yMWBSJ4WXeRbut931gwIAOqZQ9y3RroxQrFSNEXF+3cx4a0ghtbwor2u0dlSiKCeQV58f0QCjID5ODeKP2bkMT4sqKAQzqdYNWb2wYQeV+0Qid7yJGwPi8yWHpoy3RdNHH/iQi3nt/Smr+z1Z40FA8vSAhopEEP9+9a9j9b3zDOplRRLx0IFOi/QbRAufIiKWD+DtEbJubluNeWzOCM14IhtDfuqXeH2t46SXdR3+/0R0D6RwY0N8/+sh4agoFfcG5Fhcv6vbf+pZFInyn1dJeA6IVDCYFzVJJ/04PBuuirlIo6NpmZlT5pdNqpCgoz83peTF2lJGfi4vaQ7C2JvKZz2hEUCrp78Wi4ei3txXeysS7QsFI8gYGdF0gqCB9O3dO10CHchAYieDQkBmS9XWDuBLtbGyocZ2f17W//rqhy1ZXLfK7dctI9HjuoOd4+FD3NT6u2965o8deXTVFSBS1vq5roz5ULNr9Ffm4oqW2QVqJlBmULXRi96KkRcxZ4D3AYQAIIXK04l1d1ftVLB7+/pHGhA6d9XHsrS1NWRLZRIc6IZzrk06sOwtyWKQQl3B6EFA3FM+O4iASMQVPDl1Elfny8u75ACgZumKnp03xM7oRGCkeIymETEZfXB58qA2oI0Ae12zqfklNoLBQuqChslnraF1c1O/evGnKJgxtuM65c7qGiQlD2LRaGlmAy9/a2j1/gQE+0GWk06qo0mnD86OsMxldA8PdMxlT/kRPtZrIjRumjEFgJRLa6EUKoFq1NNXAgH7v3DmLYDY3rZMZvp983u4Bf4NeYmzMejpwFDDg09PmDS8vqyGDgG98XCOcREIVPt2+uZwp760tq0PQpAddBVQoQWBEhxTpWVujoWsaHNToi74XkF8YGTqtwd0jdCQDPEilFBXGsw+Nxtycfnd42MgWiWqYB0Ihm34JKDeWlnRdudxuCpFu1xBre98/om7uMxEbM7SjqbKhIZs6COIsnTYmW8691TIEX3T8bSql95Bn9HmUwyKFove+etiXe9nmeRdmBIj0ZhC6XSugDQ7ad6en9cWgkQmkDCHs2Jg1KFEcXVgQ+ZM/UWVx65Z+f3RU5POfN0TQ6qq+uBsb+j2YMfN5NSi1mmL1P/Upo26gz4E6wb17VuiFJZV0Ec1U3a5GBNeu6TGWl3Wb8XFdO1PRKNDSpZzJWAqt2zXIIkX2+/dN2fC9aMEUo7K6asXee/d036uruj0GL5lURYwRpxAvYrQYIyMG36QPZGND/y0t6ff7+61ZEE4jDCd0z3/4h9ZRfu2aGplOR88HxtgwNNrsREL3u7FhVBf1uhq26Wnd7/KyGuVKRZ8NjNIHH+i9Hh3V6z01Zcbw3j29LqTNVlYsZTg9bYgk5nVUqwZR3lt3wImYm9NIJp/XNV+8aNdwdtY613mGl5aMuBAwBEy49F7wzM/O6r6IOkglAbaINoPi4KDI2a7TsR6SUknPhxTj8vLuCI40JFPgKIzjVO03/nbvLHGExryzHkEcVmj+Pefcd0X5id723m+LiDjnLovIj4rIXxKRXxeR3z3xVZ5iwZPohQdGRB/M2VlD+ODdgeumy5diIwqSsZSkhmZnTTFHvcK1NVUEYMWLRf3dezUCFEpptspkrIjZ6VjYnM1qKH3zpu5jdlY97FxOt6WBiJTGyy8rKimXU2XKPms1awwjn55OWzfy4KAZQ15A0jELC9Z1TNjOOqFryGb1nFZWVNGxDREO6Q0URSplFBQiNmGNWQTDw3rMuTnd/8aGKq++Pq35VKvGZDo+rucFs+i5c2pcyfuTf+YaXrigx3/40Gi6w9AU1Xe+o9eQgTAzM7rdxoZus72tRmV6Wo9Nuo6oh14TBg199JEeA7QYaUiaFWlgnJ3VYw0MGESYlCLpvEJBz+X+fY2scBByOV0vjYVEZNRlSNVVKrpf0kpEo0S2zul2cCpFSfBAmImYgp6ZMQdhYsLqKnj5NNk1m7vTdYuL9uzhcGFc4JsCQBAdf3uURMew7jd69CzJYemjH3PO/aSI/DUR+ZJzblBE2qJ9C/+niPyM937h6Szz9Euv6AXgkYTUIFDwFtfXjUkTzzg6kapatcJvva4vPNh7MN3drioNvNChIaVcgL+Gl48HF08PSGS9rp7grVuqBECOiFj+t1LRz8bHjcun29V937+vShXlBmoKbqF6XRU5Cgx21aUlQ0HRRMdLn07r+RUKqgyZbLa8bMNwoNCgCe9TnzIa6AsXdPvvf18NJ1DKqSlVEqOjek7w7+fzqjhAvaBUl5Zs0hkQ1c1NixLqdb03n/2sGuPbt1WJ4s3yrNDMBQPr+rpFcnAswRHF9DIQM+Szr10zOPDmpnn6W1tGUMj0s1RKjTo1KgYhffCB1hwSCV0ffSgrK7qPxUW7H/fvW3GeonOzqecJyoohRcmkPj/DwzZPAqQW4AAaM+FrYm7HuXO7O5/h1CLtdOOG3nN4mGhgHBiwOlehoNeGoU7VqjUgAoZotw1hxfNATQIiwl6Fvol6fTdL8VmUQ5vXvPf/TET+2VNaywshKOroA4g3lkqZJ88krUrFwtHxcctlQ8j28svWzHPvnj7M9boquclJ3fbePfVOoYHGYwVd0tenn4Mm4aWiaYgUGY1JwGMpDvMPT5LhMefOqTKlIY+8cqtl6JWZGVVW166pcnvwQM/t4kVdP0omCHSf1aqldObmVOGCIKLAvLWla4TUjzQLRIJELxRof/iHVTlubpoRvHBB0270CID/B/5JLYVaA6mvrS1DM5XL+jcM6O3b1tNASovi8+KiXuuxMbv+NPv19el2S0uqLPN5M56JhBXfv/99c05Q2kGgyjmd1jX++I+b10/UJWKQ1XpdC/BAikElVSp6fVZWbEoabLLVqhkr+LhqNT0e9SKu//a2QVy5jjzLrZahnuiYr1TMMWo0rGaCkc3nLVJPp3ePkI0qdZBbIKz2OnF7G+oeV0CNUcPZj2jwrEgvHc2xHKOkUvpi42VDJQxcEvw/nufIiL50ExP2EtDsk8+bUhfRh5F0EuidmzfVKNy/b81W5N47HaNXXtqZbIGSunjRIKkweIJugQ6boreIUWfQmEXBnCIow+Ep6JHqajZ131evWqSBdwyyCE8XJZPLWccwqQoI/2BVpSN5dNTgu/fumbEtl23SXPRYs7PWaEe+miYsusYxjPPzNoTo3Dk9Z4YDzc8bAmp83HL2GxtqNBg0RGoE8jmatILA6hykWoaHraYxOWkRGzUqyPeIMl57Tb1qyP4qFfNkKZhPTel+l5b03Ilm6GTu6zNlTJEfokSeCajONzf1PODropaRTtvxOCdICaldZbOWDqLgS8f5xoYRAxaL1q8yOWmIONZykDDn4JMK93vv+FqoR6DgOMujQGOj8AkFaN9eumMRy0kHgeUvy2Ub/IInRlMVnjvoC3LVKArI1/CumDkQFRBM6bS+wCBZsll7mZkNjMcFjcT4uGHcBwZEfuRHNC89MKAKtNFQxUHBGB5/mvdoPIOtlKYpwnuKyhT5xsetL6JUUugrnjUwxFZLr8fXvmY57+lpvU7UN/Ammd8AkqbbVWXd7aoyJf3x0ksaYd29u7uJKZGwxrL5eYNW0lWLAeM6wD9F7eLOHWu64vz7+kR+6Id0u3fe0es7OmozF6AzbzRUyX3uc7qe+/e1hkEDXRDouS0s6D28d89SQKWSFfzpPeG8iIiIZCA1pG8gkzEmVZrQJid1jbDVUrPinvCMgPyiLuacgQZohMQIbmzoefb1qZGiEE3vCREFPFrQukSZULtdfXbOndNrDuUIg3xErIYDMSCzRUZGegOCHCY85yJ6nfaS+w0OWrH6IHbXsyBneOmnQ/C0Wy2DwyEgiVASMF3ysgCnA5LIg8RLgAGBPwZvnrm9fX2qtEX0JV5YsLD/xg1V5NBWYHgqFZtv/AM/oMqFTlpy6rWapkomJ41P6fp1PYe1NRvcMzmpa799W19qOqDn583I9ffr7/AbwfaKIiGX/C/+hZ4nHbEYVNYzN6fntrmp16pQ0O0ZhLOyYg1QwBGjg4iuX7c5EAMDesybN/XePXighgakCyk45+yaMBEMGCWT29ptVQ5bW6p4YCrFc81k1ICQYiqVlJ7i8mW95iCp+vosLVYq2flmMmrESL+Uy2rghocVskv6CK4kDHq9rtth5BgedP++bj8/bz0VX/iCblcum1ID7EB9BkDA3buWZnv5Zb0mly7pMwg9OuSOXDtqDIyEZRod6Uf6DJggF4a6PiDRV67Ys5/NGmptb51GxJBRIsaLRXF77/v5JHLYcCGK+GddeqHO/p+89//2UZ89KwESCBnb0+AyJ+0BXQAPCQ8KfyfdgadMcxJKEVx8EKhipveAHHSpZB3JW1v6wty/b8cGVRQE+uKQFgAV8uGH+qKNjxtmfHXVKLWhveh2DSoJlI/ZACsrBuPs67PohnQKivvhQ90vxHVEMEQWDLu5elWNSLWq3i1KH0V6/rwNj6fJCmWDh4o3LmLoJFIjIKhyOVX0iYRe28VF3ZZ6zK1bujbC/ocPDUZbLJp33mpZox+DjVDQFIS3tozagyK/c8bsev++zXnAWIHwqdeNpPD+fZG339bjrK/bmFSe7TffVOpznjc4k1IpS3eVSjYxDUoR+Jug3lha0jUDeV5fN4oKEZsHQrPXuXPqAJAqIsVXq2mKamhIr93Nm/o8vPKK7odnmx6ZKMsu15AUZrQxEsguBiCVMgJEZnSg4IHw4lA1m2rkk0k1WnRrU38R0WNyr+ju7kVAGgJHPkjoUxFRQ3vWIKq9RAqvR39xziVF5HMns5zHF+BkhIknfQPA/4voy4U3ChyScXwixqtCUZcXF6U+PGzpJ3hz8nnLXdO5zECXvj719nhxEgkjwisUlGqa2cTgriHDE7H5AYTWvORA6aBwQCHcvav7v3FD/ydlE40YyDdDM01KCkUHNPbKFV17vW6KdnDQBslzbaMeGEiic+f0+nEeDHqp122GAwoERc28540NjRIogG9t2VhOipuQ+BH1JZOWUmHfwFbhS8pk1CjjcZfLeo7z83r+RFOkxqCpAOUkoudEEfX6dYtMBgY0iqBp7/p1S63BLru6qtvdvKn3ZGLCPOKtLd1vJqPKFsWLQ0CaD2MNZxQ1ERBoly/r8ZnilkrpOjY39Rg4LsBvKVST8iT9BtyXiXwzM3oO58/b89nt6jVjCh6RdRCYE4UixpHhHeGdY3wsDLsXLhhHGHTvIqYrRHanxXoR3uXDBOeE/Z818r7Dmtd+SUT+ExHJOec2+VhEWiLy1aewtp6EBqJebtZxCMcBbUEUQLcl0EGw9VGPAk4hkBXb2wYhBDpHOoEIANrszU1Dt9Tr+ne8TOB39D688YYqcQqbq6uqgFdWVAlubho0cH5evU8RVQJTU6YAmFQGPTfY9FdeseIeVN1DQ3a+5Jfx3kmNzMzYfOQw1P/JM5NyAOkESgmeIBFjDe10dF/O6TW7dk2VOikq5/Q+VCq2nlTKmE/ffdf6HCYnjV4DSGs2a0VXekkuXNDrPD5uabC+Pr2m4+N6fni/MzNWOKXvodm0kZwM1AGCOj9vYINovwbRAGlGeh3u3lWld+eORXAAE+7eNUNKoRgj1WqZoaE/g3QjEOmXXrL0ZRDY80BfSjKpxm9lxTi7gL2+/bZet7ffFvnBH7RUFmnQ0VH9XqViNTG69SnK37qlx6YuQlGfpk0Roxqn/oTRILLa3rbIB4ryqICE2/t+IjwHT9prQO2Mn8+aHNan8Csi8ivOuV/x3v/SU1zTYwnD12G4PGlxzlg6oQ+IdjXTIQlaolo1D7evT1+4lRV9eUhfULTDwyAcBlU0N2ecR3Thzs+rkrp40dAm2ay+kKSjMDDMcm63TVHT9LS8rA/u8rJ60+227nNry8J/UimkJ+AJYloaSgflSqcr7KcUSaG8np9XxYLyF7HIh1QS0RZcQTQ/tVp6/GrVBruTNgSDTySFAYYqBA6hxUU9PkZ3a8uU8NiYKsx2W5U7XiapPIqiFMMvXzZPF7JACukoP3pOPvjA4JPkn8tlG+4DwIDieiKhz8j583ps5lLDUzQ/b6iaV15RI7G8bL0X09PG/zQ5aYSDzhlxHvOW+/qs4A76qlQyqpXVVf1sbEy34dkECQbcd2PDyPkGBnY3EaK4RXaPAgWpg2Gq1Wy+AlFBuWzb0cQZpefASQEefVADGQzF0FvsbUyLdk/n89YQSKNkLzqGviHO86zJkb619/6XnHNTInIhur33/usnubDHkaeNB8YTLRT2n2BFU4yI5b4ROpLx6qEeyOf1JZ+dVaV0/ry+/JCDUae4f9/C93xeX/ZXXtGHG3QNxgWYo4jh6uE5Etk9dIV0AN4XMMqpKTU4/f2qdLJZ4zRqNlXB4qUHgQ3nge4b5YbCW1/X85qctGuxtaVr3d7W9YGyIfXQ368KDSw6XaoffaT7Yfbv2po1uIkYfPLTn9bjfv3rBpWFJ4dohE7qRkONAek97/X3Wk33/+abmrOu1SwCCkOLzFot81KpUXA/oKbg+NWqHZd8NbBSos7PftZ6OogWIJ+7ds2MMEg0eIdIl9CpDLU1Iznp2uU6kLKhgWx11dBNRF30sVC0rtWMcgWaEyjHGaxDGmtiwjroy2VdE0AGkGkcE6QUHeik7XhnRkbsmgJWwEgUCocrbri1KBjv93c+j1Jn0GXfa1Ma93W/SOW0Sy+F5l8Vkb8sItdFhOF3XkSe2Cg45/5DEfn5nf28LyI/671vPOn+nqXs9wDuHccJCmNoyPLm0dkG9bo+eHNz1m08PGx8OWtr9pJEm4Reekn/B6JIwwyKEW7/q1f15VpcVGVfr+uDf+eODX2BW4fIhXkB588bWqdc3o3PbzZ3T4SjjkHaAu+TYiGYdQrDn/ucrjGbNYQS1Ml4ZniURF9AWRcXrQGrVtN1Rvl1YDBNp21IECgaajjr67o+rjWpNVJWV66o4oIeIQjUINy7p/eZAvB77xnL7cSERZJEOefO6XeKRf3+5cvWpTs5adEmNBEgfyBto4APAurcOSu4e6/7rlZ1v8zKXluz42PowPdfvmxeNlDcbFZ/XlszA8e2GDvSQaQxiSLorXntNYtoICPEGGGkSE1CRzIyYtBe7j/evojVjCCh63Z1vxDoQV9Ns95RnnkQWH1jv6ltdLNj3KF4F9k9BvQwqdWsbhSdkXJWpJcs/F8UkWve++ZxHHAn6vjrIvKa977unPsdUaPzm8ex/9MgpCuAWz54YORm167pw0zn5cqKvoQ0d5EKQakR0jNCExQL7I8gk5gYRkGUwumFC5q2uHxZlR/eaDKp62m3VanASzM1pUqXDuFMRhX29ev6D2+NXD3KdGNDvwc89eFDK5QDhwW6i4cXTZMQCdE8Bv/SxoZFCBQvYWullgR8FlQShXSajNbXraObeg20GzQcQc8N9XQiYfOPSXPB60NvBGNJczm9Xw8eWGGUiIbGulxO7zM0HcAqSWPk8/r9jQ29xqurGj0RkSwuWhEchFo6bZ56rabfjzKcYuRnZozvibkY/f26n1u3rJ5y9eruCXnR1Ba8SSK6T5BEUV4uuJhgNIWWAlTdwIAVjDFQi4t2zjQJQoBITYy8fLT5jEIzqSmgt73IUYXfvbDSUskoOnqRaASyXzRy2qUXo3BHRAIRORajEDluzjkXikheROaOcd8nIpub9nLsLWjjrYKxBnIoYogI8uujo6qYUYz5vKZT2m19gG7cMKUAWomBOHh1Y2OqqKlpQFd844bRU+Tz6r0uL9u20GLUappqwluMsqJSYwBBNDam5/v++7ofhrsUCqpQoxPC5ubMQICbb7f185UVVdyf+YzNIp6Z0bXfumX5fl5sUksoFaKLYtGYR4ETDgzo8ctlke99z4q45PoHB60TVcRy/aQzuH4wfHLtYWYFAQZKCoPovZ5XqWSNVNSK8KqLRVV8GG3nVHlTWAWdArw3DK27+IMP9LgvvWQ5e3D9UIcnk/o8EWn299uMaiJLekqYpzA/byyojYZRc7TblgZcWtLrMzurlN4w8MI1de+eXoepKYP0EtXguGBw8faTSU0xRafDce/p5ufdqlQsPTk6qudG0RwEHKmvXM7GrgI7js5VIE3HBLzDBPQUHdgi9m70WrOExkbk7EUJIoejj/4r0fROTUS+65z7A4kYBu/9X3+SA3rvZ51zvyYiD0SkLiJf895/7Un29bQE2KjI7tkJIvogMh+A4i8KmGIZePTxcXtZMCDg3YFKwusPSqfRMFI30jWVij6g3/62eSKE4Iy4HBjQPgVSBwy/+eADfWEoMkNfTHrm+nXl0GGCHJEKYy27XfP6qX8sLlqEgyIGYru0ZH0PpJYoROMNUkBl0AzeHxERoyvn5w06mcnY1DAYY+/fNyI3eizopo3m/4FOplK6lm5XEUlw8VALAbkFY+voqBqby5ctnUKU02joZ4uLeh4YHZrZKJpubtrcZeC6IK3Gx3eT+jF0iS5uUlnQqG9taUREvwed28zNqFQMJJDJ6P5rNf3eyorxSAEnJbq5f98K9+WyOgRvvqnHgs4CBJuIRY6MU63XLRVVLFpfxNSURpLwI21sGBFkJqPRWrT+QsTDe7ewoMcYH9fnjlnWAD14R0RsFjfXEhQTzY1AgYGMI5WKob+yWaNl4V2PcisdJIBNzqocFil8Z+f/t0Xknx7XAXfYVv+CiFwSkYqI/C/OuZ/23v+DPdt9RUS+IiIyPT19XId/IiGEhswuyjUP6onUBg0/+bx1YcLoGS3worySSeskpZEKiB5FY6ZdffOb5gWRk4X0jdkF5MVJE7Ra+rePPjK6A5p/KCySrgK9QoMXSo40EBQZDO9ZXDRoInnjDz+0XDewQ4qhGxuqcEh7vfmmKcsHDyylwNwIEDqvvqrKjvNmNjRpjK0ta5xi1jXpJgwUfEve2/SxkRFVROSzaS6LErNhFEGSTUyocmaYDkVIFBPdwKwD2Of0tH5nedmeC+pFMIA6Z8r/7bd1zaOj+hmOBZEj0d2tW9b7QREWbxgKjitXrB8FhlaYeqtVne42Pq5G8cEDS0mJ7KbsoFmO9BIwatJoFMGBvRJxMnYUxBYUHRDWnT9vpIekqOg/uHpV7+/srF43cvVROg24tYg6GYQD5TfRLe8XdRbuDTxOoPWozfE7tC5nmbriceQwSOpvndAxf1xE7nrvl0VEnHP/q4j8sIjsMgre+6/KTj/EW2+99Uzppchj42UCgyOkHBmxwtTKiv2NLkzglWDloTCgQxcveWnJ8OSvvmoFWArVKOpCwTpMCVOnpjTNcOeOUVXDAgrFwNycPty8hFBSM8t3bMyKg0QrdNRG4YGrq7qW6EQ0CM6g7RgaMi/9jTdUMS0uWmqMaIaGtulp48hPJo1ae3xcWUy//W0jUysWrZO1VNK0GfDBhQU9L4wJlBSwV1JXodFubU3XVi4b/YOIUWjToBWdwvWpT+mxZ2dVwa2s6LUrl/UecG/X1vQ7589bPwYpCeo6EPiJ6DV4/XVLL96+rc8WQ3PoAmdaHl3FjD+t1+27oLzwpmnowpAAqyUtRS3h+nWjln7tNX1eh4YsPcY9mJzUfyMjBiXOZPRvr70mj6b4VSpqeDsdfTa//e3dKU4gsrC40qsS7R+AMgSQBTMoGIKUydgQKRoYq9Xd8zRoaqtWzTmKNiYSGQwPWwS7uKj7Z4RrL3MVngfpBX30vsjHZjVviEYSf8d7v/qYx3wgIj/knMuLpo9+TCwqObVSLNpMgY0N470vlQzBQ36YhjOKnjyMdP7CHslQHVI+0Zb9lRVVJjSYQVsNXQE5aZQxoyyLRd0enDlDe+CvJy9KGmB01IqvkPNBt42HCGnZzIx1/dIQ1m6rwgSDf/++KTkKizRkXblilCS1mk4nA0VC5IMBTiQ0T/2tb+l3azX9HYw9qRTSHCCtoiyqc3OGsoJUkOamSkVf+tlZvVbj4zZ/gOtMtAFiCw6me/d0nR9+aCk67v2VK1rv+MY39BrgOLRamqJaWbGJe7DKTkzo9zFOMzO6ZorKGPmFBXvOvvtdg5i225rSmpjQVA9MtaDgvFcDA7z3lVf0c9hdcUpIqTC0fmFBr8/Cgq5tZMRYWulqv3dPn/9yWe8BE/AuXbICLX01mYwNwjl3Tr/HbGlmYYvouYD8gaWgv1+NTaOh1+b737e/JRKWtsR5GRoySCiRar1uDYJEzFGEG+lI3pFu15BsZ42q4pNILwHR/yUKRf2HO7//ZdHO5g1RxNCfe5wDeu//2Dn3uyLyjujQnj+RU9QhfZCgwOnEbTYNN95o2EsOl3+pZDh78ujRyV79/fqSUXvY2DC6ADpxP/zQCnjQCUCLDdpjZUVfAMLpctlqFqQm8MoI71HK0CF87nNGMw13UdSgTU0Z9xJFdQwQRgwUCQgfhp2srNhgllLJSPQ+/NAaqwoFg+wC1yVdsbCgCgBuHAzH7Kxuw/dY19KSPJqvwIQzirE0thG90WS2tGQ9G/R3EGWVSmqcoRNZXRX5gz8w5UJBlK5zFGI2q/vM561REKUL1xAKh07oiQlr/qIYns2qoZ2ctDQkfSGk2Uolu9eQ+ZHWi061gw4jk9F7DTHb8yEAACAASURBVF3G5KSlYc6dswjmo4+shwYKDBEr2t+5Y9765z9vzgF9ExD83byp58KQJyIqWHl5lsn9r68bQmx7W59n+KQAW/Az7xC1nNFRm+HBe0cnNjMqog2n0GCQTgMpRw1xb8czA5XO8mS1o6QXo/Al7/2XIr+/75z7/7z3X3LO/fSTHNR7/8si8stP8t1nKTyQUV4WEfOyQRQxdB3Od3KSFM8olKJ0KhXz+C9dMp59crXf+57tP5k0jD5Rx4MH+n0RTT+Uy/qyRzHZY2PWiJXJ6Asd7Y6enDQOJ4p2cN1sbBisltwv3c2Tk7Z2Cq942evr1q+xuKjIk5UVNQjLyzafF0ZNtp2ctFQCBdP+fn2Bi0Vr/uLvm5tGuTE2Zt4zaQKgvaQE0mmbA0EhEiWAcsQBIEc+MmJd1ZubVhDO5w1tQz8FhX0RM8RAaLe3dY3UoXI5NTpEE82mkRGClyfV8fLLRl8BOovrkMmo8U6lNAVUr5tRAWe/sKDor8FBY92lOxk0EB3LKF5SO4zcdE6/t9fp+Ogjg9kSoSST1uPBeM3xcY0E4KGamzOI6va2Nb3RuwNCjhG2PCt9fTZFDaAETYDAt0k1kVqMcjFRbwD+yjXic0AhUZjr3btWb3nllWM0DFgw/tFCfdTvzol8+cvHtAiTXoxC0Tn3Be/9H4uIOOd+UEQAWvXYzvH8CN2kUDowOxfqiG5XHyz4cKINXRSrKYCi6N9919IFg4Om/IPAcpq3bxtHEkaHFAjpE4q5/f0G3YM4LpEwxb20ZPTUKyuGl3/rLUMNoeCds5CcvDiNV8AIwePD1wSyJDpb+bXXbJwl6SqK5qTDkkm9VjMzBnsl6oji3gsF3d9771mfAxO96LilcD8xocdgoPvcnB7n1VfVAEPQhgK9ckXvLR4sKJ9USj/PZs2wMPWL0Zw04hE50hUNMuhznzPUDqkS7jMRDOmM/n797sOHeuzpaVWmqZR2aEPNQXoQxtG+Pj23Dz+0YUMUXS9dUuVO6pN6GIr4wgXdZm7O0HBEPfRaoFg3NuzcQFpRMykWtUBMTenSJb3+o6OGAhseViVLYZgpe5WKHv/ll/X6UPPqdIy7a2jI4K7QsdDDAY8WzzuOUxiK9JW8tLZD6UuGEhTaIs1QpBpKrhlKZ6MtvhlKIR2K3A/Ftdviooo4DGV0oy0jrVBcO5Tkn4Qi/gjl3auCf9JmhlzumRmFnxeR33DOFUXTRpsi8vPOuYKI/Mqxr+iMCB4qeHhglnhfeIRDQ0aly8xfOiMTCU0N3L6t/0AsFQq63dWr6vXNzpryppGK4fKknYhS6nX12vBomk1VLCCCGE9JDh9vfmXFUgXw9dBwhXcMxK+/3zx3aByaTY1oKKqL2DN/4YJRCVMYp0hOrQXEEI1abMs78/77+vfz51WBfOlLu/H/MLviCZKHZgZyIqEKCBI+romITWODUI0hOnjoUVQZFBaNhu57cNAKvkSBxaJuAxEczgNpnCg1yvq69UU0GnadqY28/rqlPnjeaJBjQBG1HbqmubaAAKpVq1MtLVmfASR3RC10S0PvER2QhPHjHsACS1pxYMCMSCbtxXXa0q2Gcr4vlPHLobTGQmk32pLohNLfCCVxP5SLlbZM5UNJdELJrbWlXdefO51QMh+1JZcKJXtfH6LGVijDzVB8K5R0oi0pH0q7Hkq31ZZuUxVssqsKO3BtybdCSXZC6Q9VwWuY0RFKAz7Sd+C8SGEnUnAiIgc0weW6Rod/rNQ6PFykGfh5v9+jn51Q5bsX7qNvi8innHP9IuK895XIn3/nRFZ1jAISAY/juIRwk2ah/n69RxS4oiRfdJJGZy+I2HwFoKd4/9PTqpSgcaALGWTGxYua137wQPdfLquihDjt9m3DiOOQLC5azhRKACg36MOgYBoENmidoTwUsxcXDXNOiijaQ0E/AkVavHhyxoT/pCbI+Xc6lrsmreKcEeQBDcUI3b1rFNgMsQFNA/2Cc3qtiDYoNHqvKTMG2rBGKLSrVQMKkBIh6uG6YoBxDlDq5KpR3OvrxldVqxkKKEpDDhdPoWC4/Oh8Dug5yGUznyGZ8DLU35FSXygpH8pQoi0ZF0ogofRdCqW1rQo07ULpNELJpULJfb8tA81QrgShBIEq3GQ3FGmGEtwKJXUzlOSOBxzWdhRtty2B15+TPpRA2tJpqFJuN0JxHd1H4HVbCdviRZVLn1NFG2UVTiRFkgmRgoh0OyJdL5JK6v/dHdhwIqnfcykR8SLpjqJdEpFGskAMciyyo9CdiEuKJHeuoe/qfp3T/30yEEkH4jL6T4JAfDIlPrGjcNOB+HRKukn9PZFOiUvv/BwEkogq6aMUeK8K/mmTtx0hhzWv/bT3/h845/6jPZ+LiIj3/u+e8NqORRhYg0I4LhQB+Uxy3HgdDCWH1wisfRBYSgVv484dozEGeUSRC6QHRTEI0splS6eQy752zRgxCfGdUwX62muWisHrQzHCF0TeGQI3uHBADpHjhTAOyCNpD3LpKG0azjIZU7pEGShBSMzSaTUwFJFF7HPOu1Ix3qhuV71dIJSkz2hawtBEWUaj9RKUL9TImYzRRHBfr1yxztx0WmR8zEu72ZHaZlsCCSUfhDIx0pZMQj3TRCeU9mX1ggtpVcSuHUq1G4pLh5IY0u8lOqFkEqFkk6Gkk6poE51QZFUVq2uH4sNQOvVQOs22+FYo0g4l0Q4lJaEkupriCGv6PddpS2rnuUg4kU5XRHZqG17sOfMRxZlI7GwnqkQTCdv20Wc7CjndNSWeoi8nqcdIeJFUV8R1Ip6zs335pCrTRCaQjktJ2wXig0AkFUgyk5LOjmJOZAIJsoFIMiUuGYh3gXQSgbRcSoJ8IJLT73UTgbQlJZliIE2v2yQzuo1LB1ILAwl9SkrlQDqpQFK5QHyQkuWKKd9kOikrq+4RuupRb4KI1LcNkVSrW40J2DPvAc95VIBpU9t6WsO+TkoOixTwq/ehjTo7grdFI8pxiXO7W+mRTObjHOrkNGlAAjny3ns24HxkxJq38nnrnqUYNj1tnanlsuaXMXKf/azuf2FBj7ewYJQOy8tWp2i1DDoJ8RooHygOGM4Ovz+pMLqgKajiwZO/vXTJCtlQDZRK1nmaSFh+d2rKFHy5bJPhwlCkttWRbqst+UCVb2s7FB+2pZSNKFQXSn+hLamRUJpTmlJIiSrlXEq3SXT1dx+GkvLq2Sa7ug/ptEVaGkIlttuPFLGEoSR8W9Kiyt51NPUQSCjee2nvQJJdYsdjTYiIt6I4tRLRj6XT1m18d2dbMQZUEfWWvd/Be3uLDlo7KKjuTqqN+ktiBzaZxOtOiEgyJT6dEp8NRBLq9XYygbgdBRy6lLS6gSSzgXQSKUmkA6m3A+kmUpLMBpIpqtJseVWqkg4kUwik0VElnMwGUhwMJF3Q7bqJlISiv69X1ZNOZALZbgWytB5Is5OS8mhKcnn3KOIjHUfKDagn6LbBQTXE772nUS6pt8lJNdLZrMjSDiGhlDQNiOPwxhs7cOEdZFQtwmS6vCyy3BBpV025RyffRRV3NIsQ7f9xzmDLpOb2ciMRCfMeMVSoF/HeHFegvs9aDmte++92/v9Pn95yjl/gvcHTflqCchCxJik808FB7Vgl5dJqqZKHGwkOGDhiXn/dPGtQIHQyA1NcW9Pvrq5aARWajWvXtHBHs06xKFIqav5odSGUZjWUbGonjRCqYh0eUMXc3cnjFjOhNGuqTAMJpS9nijflw0eecPt8W8Ltndyv29mmZTnf5KZ6wD4MxTdDSS6HkryhOWIJQ/Fd/yglgNJFUMZeVKF2u+r1kpbA86Xvwe/cB1ISUY/WiaUeIHCTncMRUfG/9yIulZBkOhCfVM/UJ1Pi04GEPpD2jjJOZgIJXSBtCcSn1DtN5SxVkEirkm0F6tm6ILWjrPVfKque73IlkNWNlDQ6qpwlCCRbVC94eSOQ+w/VC08XAimW3CPPdGPDkEvQOdy5o6mydlsRMwsL2uMwP68GeygQGR801FN/yRyGVkukmBC5vFPYDUNDFbmuyLYXKe84Ot/6tj3jX/yiyMSkOhLwPdFhXyio8ofG5dw5o+2gaJ1K6QRBanV0t3tvjZGtlrGcRt/r6M8AK8JQHRE8faLYg4RUPcaYWhFF+0fpKmfHodt577AvnruDhGZPEWN8fdbSS/PayyLy34jImPf+Defcp0Xkz3vv/86Jr+4YhHTB0xLoHR5xuARettZCCbc0fzvUF0pmLZTX+9qSv6yKtD8fSimn6YNiRnO6eRdKYkOVcqfZlrCmirbzsC3tRih/ZUfxJmfVE243VMl2W5rzbddV8SZXQ0nPG5LCh6FIKxTnu4+8WNIM4kTERxTyjpCr7XZ3fhb1Wh+lJSKFN3K4nU4kx7vzHbZB2Xci+5MdRe6STro76QKfSEknGUgiramCZDaQdko94HZKPdmmD6TjNA3hgpQq40A94CCvnmtlW5VuuhBIrpSSlg9kdTOQalNTG7Vw5+eEfRbkAxme0P20JSWNVuJRD0UYWsf17dt6r6EyX1rSnH+nKTKQE7kwpc/f7dsixUDktUsKBGCQyxtvWBquvVN0/973tAAMZUWpJLJ2W5U4HFdAUDs7fQCQDwIvDUNV/O+9Zyis5WWrkxA5Mo+C6Xp4rlB/h6EWpZlDsbGht4tBRB9+qN+j2E5n9+ioIcWIhqmtAMHlvSSCnZ834xRFHTmnRmR5WZX6+Lg1qAFQGBkxPinWATsrBXOYYpkSeJhgGIjcMSQ0zwWBAiig2LhwwQZhAVXd2rJ0KhMB9wrOB5HPaZBe0Ee/LiJ/Q0SIHN5zzv1DETldRoFmgV4xvk+CC97v94/try2FZii5lv7sum0pRYC7pLCyIjLc3UktOHOIk+Rv8XxFJNEVkR0IaNoZnHVHH2tRL1LcTu4cA++XGkO3K9LuRArhyUA6aVXAEgSSyKSkmwgklEC6qUBcShUxRbe2pPTzIPJ7Uv/uAvVeu6lAqg1VxvV2IM2uphzaLpBMSRV4q5uSXF8gbaeecLOjirrtAkllko8w9CB5aKqiMQ68P8N4qlX1ZIeHRdaWrH+A6W/UPS5dEnnrvCrlb35TP4eqGyUEPFNElU9fnx57ZkZffLpoKXZTJ3r9dd2O2g1490xGDcjCgnVEp1Ia0bHd+LhFf/SbQKx4+fLu/ph799T7ZRCTc+plc00mJqwPoVKxe0/XMalEgA9AiqPTzYhUIcurVq14j+Fpt20uB4Rxr7yiRgZ6cBGDL9+9a7DfbFbToVevGgS6r283F9f6up4zzLE0RlYqFrXMz9s6SQktLBhqLTpnAeQXdbFea4vM26Af4+5dixyAAovsnzamTsX2+x0TniYM4WmQXoxC3nv/LbfbzJ2O/oTlZZFf+AVTzk9BvJgiPygsdF2FuZFv9qmU+KSmD9o7StTv5GclFUgqH0irq4W3VCYl3awqyG4ykCCnOdx6R1MVkkpJMqcebaOtCtwnValWW4EEOfWGk9lAthqaK+4mA9lupqST0LTFzHxKVitJSWfcoxkH1ao1EFWrIs2dYvfwoHV8itgL2mgYuV2joUrnpZcU7dPpKMcN9OF0ZEPp3GqpEr14UY93/755v2D6ocseGVGFcf++zX8gZQYDLGyns7PWZUxxf2lJlVehoH+jKQoILp7pXq+yXlfFtL5uMGA8eBFTPBC0wVY6MqLXYmLC0FebmwqBBQIMxr7VEvmjP9LPzp83FBdd8UCWmdAHxJhzHBy0XpRmU48NDXs6bSNLz5/Xa00n8o/+qObl5+aM1hrlfumSGhRGW6L8EwmbKQCFN+zAYWieMEy29CQEgUZJrZbeq6EhXculS3o+N26oou3rU1AEjWSLi9YkSCQFzxMotzA0w0WD5IcfWid3lEm3r89oUfaby7yfgLyLIt/goBodPRoRSgQGyOggAYF3WqQXo7DinHtJdpxZ59y/KSLzJ7qqXgV+3OjvvULCnhBatlXXgpxLB1Iqa345lbNt3M4/Sejvt++mJJFU6zE4qEqFfD+5byZliWjYi8cECmlzUxvc5uZ2WDOHRO7seMmgh7LZHdbJbZGBtiqlG/f0ZbxzR/cN1cbMjI23jKKMYAollF1b0zXAOUN+mHGgUUbSfF7XfvmyrvHcOU1rVKuq2Ci2U3wsl1U50J0NtJUGwERCz6dU0r/fvm2NX7CEQu0MVh9Ss/5+Ta189JE1MXU6BgGmcxc2VDpemTU9Pm4NgeSh83ntGYEzqlCwug+9C1F22VJJz49ejpUV836jeWrOFWbbiQmbj8BzUq/bLPJoT8bt22aUozxAtZpel099yhrMYH8dGrK0VCKhx8GIvvaaFnyXl40WGwXLRLp83mDXpZLWqng2eCbW13VblDXT9Kh1AMUFLl4qmUdfLFoEAoosk1EjEobWK9HtWo8OzkwyqZFKKmU8TzRbihitBsi0oxQxTg01De4rRIBH5f9LJWvAPEvSi1H4BVFuolecc7MicldE/sqJrqpXGRwU+Uf/yJT3CeHAQOXkciJ3vmcQzakB6xzGW31EqS36stV36AAYgUioTRdso7FbEdI3MD9v8wzgO8pmjfaYEYh9fTYpDWgppG3JpP68sGBdxQMDRo8dBPpwM7RndVWVabTjdWFBHs0K9l69ZUZBwvCaSOjLPjBgypYh93fu6LXjmOWyFf1BYtHYB6Mr/7fbxkmD58yLD1U0sxa6Xb3O0d6DV19VBbWyYiRvly4ZAyzG9/x57RL+wz/UtQ4P63e//W15xBjKUHpYagcHjZcHFtLBQeMjglCwWtXzmJpSBQpFR72u633pJev4ZVjP8LA+L1BBz83pGstlMzq1mhpU8tE0naXTtjag0hh4YMV49lCJw+JKCiYMdT1EDMPDu5lNHzzQZ5hpcOWy0XJ89JEZylTKOLC6XTNQECyGoaaRmDECjLtUsgJzoaDrIzNM42CjYcOHRIxOnWFAzDyJqgTnjMG2WtVn9TDhfpBWw4mL9pMcpiuIFHsVHBeg0M9KemleuyMiP77TwZzw3m+d/LJ6lGi16oQEDDJMndPTNsyc7l0an0h3iOhDt75uQ87xaCnA4cHA1IknjRKkyEdT1JUrRrgH/cTLL5v3CGKE1AKNXORW8ahKJS1uQl2A10ihrNNR9MidO+oZ40UDlx0ZsVQLnj+kbrOzGoWsrKhSe/VVY6fsdGyweqejxoa506QemHY1OanX+O5dY+MsFvXf0JAqQPihQFitr+vfmHPA9R4YsNRJPm/nOTys1+vCBb0m0Dzg3VJ4FbF87+ioKbxOR9fLaNX1daM0IU+cTtv1n57W+zU0pFHfvXt6fcbHNaKKEiWiQNNpve/nzlkePAw1mrh7185/aMh6TyjqMmN7c1P/Njys65qd1TW+956uiX3TS/LwodUAnLNu5dde0329/bYqfuodAwPW1Z3NqvNQr+s+MM6kAumOz+VswBPEeDRYQsvNECZec2CmIhYFIEQpGCK8ehQ3zgdwWN7rKDIIHi2AKaSKmDX+uLoC8MHjyOqqoZzGxp5dhNEL+ui2iHxTRP5QRL4uItdPelGnVegeppDGVC28FZR4tAM3DPWFJI/5wQfmLaF8IAYLQ33R4I9hHCceHMpLRF8svDiIxOCdn5uz4AlPdmhIvVW83ZdfNv779XWNWlB06bQ+lN2upijSaSOwY+wmcx8gB4TKAToL0l+kLhIJM1KkJ27dMoM5PGzFT84bsjxorRcX9TgffGBFRKIMZjMwppFUDTOamZDGmNFEwgww5IbMwh4ZUdgmLykKK0oV0ulYLaJa1esHCylcUCK6T7j8mQ6HwQ5DVcJbW9a4iGG+e9eeD6ImvPhWy7rji0W9VzRVra3pusfHzbOHGBASOlItcG0FgRbeKUhjbMic1uvGZru6ao2I1G22t/V7pBfn5vR+BoEWn5eXDeLa6ej5M8+CaIb6DmktWIadO3ikZbttjZzI2pox0PIMw+7KtDwchGgUwZroz1lelkdUMNCM9Kojov8/jkS/+yTfPy7pJX30moh8QUT+lIj8mnPuFRF513v/F090ZU9RIBdjIllUSE/gjbM9LzbFPiB56+tGfc3Mg2JRX6bVVQ2983ndBq8V48FAmJdfNk9rY0P/EcI6Zy880Uu0M7dcNjrjTscKuBMThoLxXnm04PZhgArIm5kZRYaMjJiHzwuUyagnx0wJOqgZjgPaBJZSlFd/v/ZLYESAwYJ8+aEf0u3ffVcVZSKhRsx7fZHX1vTvjJFEyUFhDlx0eNgKoNvbes1R5t7bBDq6zsnH8+JT5KZLe2vLxnKieFHMpPDSaYumpqd3U39g3BoNm5ldr2sEEIamZBsNK7SKWP4cXqbRUb3OcDlxLUiZcC1gx4XCBLZXBshMTtqwpcFBvcbvvGOonOFhXQ+U7ijkhQV1WDDQUdgopJCkR5n2R0RFgZfntFQySCy01p2OpUd5NvY2icHBBeEgg48g4ovCO0U+DgYhGt2vQAzNC9et2dSfBwZ6z0onElb4xlF8HCmXLX30LAvPvRiFjoiEO/93RWRRRJZOclFPUyD14uf9HhgKuSKqzGdn7W80w4D9np+3pidok5kdjOLK5fTlhP8GBAgv9fvv68u3uan7Gx42T7SvT3PQCwuKXFlctOEu3a5uv7CgLx77XV5WRbu4aF4VWO+VFZsCRs4VPDYUHpWKooXI+8LpL2LngidPaP/qq2oEoMTu7zcq7/FxqzOsrJgiun1bo4fVVUtpTU1ZKmFpyYwnEMGpKZvGNjBgxUQ8dRhCgVY2m2bI+/t3z7weHbV88YUL+vmNG9b0l0rp8WCqpQudOhHjUJleRoSYy+naP/pItxsY0GeCqAkqFKJA6EzW1vRnUlbT05rWy+d1v2NjxusVpZ+GDRbeLGCiAALKZd0niBhy+LmcptrSab0vREm1miGLKhVjpO109H5Btz0yYkgi6B7ef1/fF54LxnYylwB0TqGg14yUHJj/6Ht6585uupRKxeZ6j4/bfup1/TvNijS7HaaoQXBR4KZxbWzs8O/B0prP63WM6orHlSA4HbOdezEKmyLyvoj8XRH59SeYtHaisre78HEFDDge4lECZI7QPZr3g9NfRF+Ye/dUwZ07ZygKUCR0Jvf1GerinXcsBQUXEggNQu+5ORvY8uCBzUdYXdWH/8YNY81kHOjmpkEpiYjef1+VRa2m14AidbSBKZlU5QVHfxjqehnwzjFoxIJ/qFi02RGsG56i5WU9r7feMsqA+XmR3//93fORSyWbtnbrltUQmBUNsiSTUSMInfn8vCom5ghHqcxrNZs58PnPGxUzRIF4ssPDegyarW7d0nUODOi2zKdIpXQ9pZIZiG98Q9dQq+l1+OIXdT10RqO0Sd8sLKgxAnJJo9TcnJ3H/fsif+pPGeqaWcfO2bXd3lZD9uqrqjxv3dL/02mRP/2nVdkTzayv2yjVWs2QRcwQIBJdWNDn8OFDVVg4GfW6Dj6Kdt9TvBcxgzMzYwbeOX3ecGwAUaDEKxX9HWdkeNiMJIgqWpHw6EGg8V5irEk98Tzv10OwV4DP0gcDdPWwNA6NqiL6P07g05BPqvcOk16Mwk+JyI+IyL8nSpn9DRH5uvf+D45/OY8njYaFphTSHlec0xc6DI9+cAiZgeQND398X9PTqmigFkARXLpkIw/BXa+tqRKHPfPaNTUk29vWfMVAkPl5Q13cvm0wuWLR6hxg2fGU6T2ggMs5dLvGmgrEr1bTF5MCIMglUhSksba2DGq3tmbYcwqk5L9HRqyPgFoCUUAup3+/eHF3UxcUHHjvzHVgiHutptsArYxSlJfLhgoD8UMaAsbX8+ctj97fr9d6bs6UHiSHGErSB2Dq02ndfnHRhsqk01ZABgCHsYvOd1hfN8MD1LLd1jWR9mI05Y0bRn9eraqSfucdRUN1OpqnF7G1witErwKFVp6HaETW32+RQbVqzynI7vV13R+DjUjrcG2JekZGDLkETJcoAq4uaivptD7bU1OWRhIx5B6cWhsbRp++uWkR+csvW60BdBYOGWizWs2uH7MXmIHeayoH48W1waAcpjtI1fHdpyFA2KkBHRfJJ9IL+uj3ROT3dmoJ/7qI/Aci8jdF5GTIvB9DgNjhvT2JURDprXmESVMiqlSiefaokEoCnkj36fCw5U6hKqBRjMIoA+cHBvRFWVmx7mUgd9HQ+uJF9b5u3rR9kQMFKjowoMceGjLvGUZSRk0ODVleGMbQd9+1KIpcLPlv1hHNDXuva+FaQgMOZJHxmERAAwPq2TJ0Cq+ONAINcig3RnUODlrjWqtlkRdpMmoFQDOjzWlMiavXRf7lv7SiMb0VjHys1exYc3NWsAZVsrhouXvy6lwnrkO3qwb0zh1ViG+8YbO6v/99fVaKRVXwg4OWpoBinMgIZE2jYVDTW7esGW90VI8LcgZKcCJaBtJQ16rVLE2JQFMOFHhmxjD6U1M2q4MUpYhtPzpqI1eZdQ1IAkTY1NT+uH6cJjiSSL3QL8KxYMm9fdsK/q+8Yg4P9R1IFwEBiFhR+SgBcBGNMEjJHSZ0Ox+3Yj5Monrvcbqze5Ve0Ef/REQ+IyK3RBFI/46I/PHxLuPJBAbGowiujkNIjYgcTnJFuqJUUuw7HsvqqqU9ZmYUQUMjDeMUSTHxwkNNsbam/y5eVOVx86bhrTMZ3W+9bkXdkRHrplxcNBRKuaypiIUFmwx39aodD7QSuXeGvYyMmGFbXVWFfvWqrQGoJ4yuFKP/+T/XfWxuqmK8elWvy5tvalG129VrJKJKm36Dt9/Wz4aH9bjj4wardE49fCLE5WXzIBcWrGZDWoP7de2awRpnZvR7Q0MW7dGQRE/H9euGhqGoTcGcjmM8881NvScMQhoaspoQRd1r1/T+oXC7XT1fhtSTMtrYsJRUf7/NyVhYsJGoeMsYo09/WqML5jcATMjn9bivvWad0LDZP68L4wAAIABJREFU4rEPDur9ZG40OHue4Vdf1XoSEOt33tFjTk4q/BQnotnUNCk5cVBI4Pz3Kua9TtbYmMG5SeFUKubYkDKt1fS75bJRexBNPXyoUQxRPDWUXoQa1P/f3psHSZZl5Z3fjXCPfV8yM3KrrKylq3pHKgEtoK0NqSVGYIM0g5YeYEDIpoaxARoJLcCYTAwSBthoa5NmxqZB0AgYJEYgqadhEFg3CCHURXd119JUUdXdVZV7ZUZERsa++50/jv/q3Hjh7uEe4eEenvk+s7R0D3d/ft/198659yzfR1Mh9OoHId35tAqUeTfSnd0I6llb/4Skz8UYdw98Z4tBF28rtm2sTlk1V8PcnNflT056cpd6fyizFxfNcL373XZREf+dmvKV6eKixZXHx934X7rk2rgLC3bjETqgpl+ym3993YwF8XbJjcDFi/a3ixfNyD36qJdPXrvmNeWEo5aXzfDjcM6csRUgFSeszkjqQbfNCh7G14cfNkN//ryN56GH7Fhf+IKtBClBZZVLyIGqkN1dCyfQ6BOC92XQIDc0ZMaBxrT3vtdF3SkvRTluZsYcGbmImze9YowdBg1t9IsUi75LYpXe32+//caGS46ymxgbc4d95YqX6pLc3NryZjFKZOFZIiyIMb9+3SuKpqft+qGfIEZzHhzz3DlPyFI5BU0zq+rhYXsPq31yCoTB5ud9J/jlL/sODfpzGuegYZds3BQdUDU1O+vNjpJrnEhe9cf3UJL93vf6fbWxYb9lT4/dA7ADSH7+aV/D8PB+XQNCYOzwUkDcR+kpOcOTCLTbjwv1hI8+0+wvDSGMSfppSe+U0Wd8V4zxvxzuWM0cWXUUiwd3QNIteveuGdE/+iPv+nz0Ue9YJpZKpcv2tm2HJyftJqTMj4vypZfsoifpx26EhHChYJ/HqHZ1ebUL1T9PPOHxT5zp44/bzby8bMYEY47kIqELyUteaRDDWSAscv363hJZwl7EZclxzM9bDwAsoLOz3vSGsUKsHUoMasbn581gr6/b2L/0JZtf9IKfeMLmDGbKU6fcQG1u2muXLhn9w0sveWPVm2+aU379dS9vffJJN6TDw3v57mneoz6fsBI5DvId6Qo8RntM9QzVPoRDPvc513SmcxdGUfpa6AMYGrLV/+OP25ygqYyTfOgh25UNDXmF0+qqre4nJ+2auH7dDT48UDMz9vrQkP0e9+55SInmOJq5hofNkbLYmZnx0BxNm4SYKOnt6pK+8iu9OCNlqCGnJVU2yKOj9vteuOAluDMznrOice3aNW9azNoG7gXJc15cbyzIyIsMDJwMGut24JBR+CPjI5J+I8b4LSGEHkmHqOo9eQjBLl5CG3fueMkdq114dx57zC7wZ57xG/bRR81AXb9uNyKhpOlpzylcv+7c9BMT9pwqDBpylpftO0ZG7PNjY17zz8q2u9vCEUtLdtNiIImLd3d7LmJpyY0qFVSwbS4u2vFTYRKqnQoFM1BssWnAGhmxMa6seHc4Nefnz5sxJ4FIqS43OIyYU1NOkQHIs6Ta0/RaICP6+OMW3z9/3pzA+rrt3AgHkSOgzJPkNkafqh/CGMz9I4/Y3+GuunPHzm9uznZjlL9SacTugmQ9q9yJCbsO0Oq+ft0c+MCAObN3vMPec/Gi0zjjEIjRFwrSBz/oZb5US5Gv4relA5qdLEyyc3O+oqcz9949z0GReCbvQccvzYZ9fTb24WH73mef9Q5xwqgk88nNpdr1lXTsuf57e71Le2TE5iP9/VMiwizS47Jjkuy9/BZvvGH/0xdESOtBQsudQghhRNL7JX2nJMUYtyRttXoczcbOjt3ckt2wrNJIrF68aDfX1avmACBcYxVLTB9eG/hP7t7d21VKLfZTT3lJJR218A6xmp6asuNcumTfce2aM2g+95wZTowFFUoYabpaV1dd/IPkNN3S0DNvbloYAxW22Vl3IoWCx9dJyLHip1mMm1Hy0kUqZEi29vWZIyWM9/rrbpTTAoOVFa8kGh62YxNygQIBqmqahM6edWrsoSHPVd265UYUrqXeXhtDseiNfUtL5li2t60pcHDQjMrIiDkL8h3r6z7faYMUVB99fZ7YLRQ8icmYWLGzOyBswu5hfd2+l9DTnTtO6nf2rF0HJGLT+Xz+eXPyGH8aDNkRoegHHxZlpoODdg5vvmnXMedAaG183Kkr1tYsfwLlNU4CenQcA+XZS0t79SHoM7l71xtJsyEgihMkz22lGBvzRRosq4cFCyK4uloVsWgF6nIKIYRzkh5K3x9j/N1DfudlSbOSfjaE8B5Jz0r6cIxx9ZDHOxGgbV/y5ieqRdKyuPHxvSypUE3QUr+x4UpUXOAYD1bpvb1ekz0zY+GXoSGnqCbmfOmSGxWa6iiFvHXLY8yXLrkBJVywseE3PaGu8XEzcpSeQkt9755zKBWLNqaZGZc8hMqDfgvJ3nf5sj3GsUCvDF1FsehNUjMz9h3Xr1v+gTGeOuXOY2DAE5SEnpaWbIx37tixFhel3/s9C7+QxIRraHjYSymfecYMFJ3VhKG2tpyTiHn45CdtRT41ZU6fcybBL3noiDDk5ct2rKtXvXHw7Fl7/dVXfc6puef3f+UVr86iYq1Ukr7qq+wapHP56lU75+vX7T3sWpaXbY5HRmwcy8uetIV5lN+e0kyq306fts/SbIhwD2OBXptrk0IHWF5RT6P3Ji0tlXzHQah0cdE+D4fS0pIvPNLQFsh2L2dBMYPkvy27BO7NtImR91YCndVcyz09nhi/nzWaJUkhhJ+U9JdlnEckm6OMB+mw3/nHJH1vjPGZEMJHJP2gpL+b+d6nJT0tSRcvXjzkV7UOaRUANcujo/s7FClNZVdw6pR9ltDFzIwn3uDzHxqyKhKMx7lzTsz3tV8rff7zXoUDnTXVRnSbEu89fdo+T6JxYsJCKazIT51y7pm+PrvQuTGffNJvaslFX+h27e+3z1LVQ75icdF3DKyuWB2y0oKvBiNBfPvUKTsWuw1WkxiHoSELCZHPmJvzah7i2WhOs+JHopVdleT5IjQfKKG8dMnnBOZLqBv4/okJ79Dt7rZ5vX3bE7YLC3udBDu4s2ftWOwEHnrIdhwYyWLRw2SEk6annRoC/WJCQefOeZXYq6+6+BA0ENCwEB4kTzA6asemd0OyMBHXKFU8/GaLi3ZcnAmxeXJMVFaxO2Oe4FmiMIGmtyzIzcCthR4GpbPkuu7ccTJAybmY6CmpBZLRKdidZfuPKiF1RmgtsOBB96FTEeIBzEshhFckvTvGuFnzjfV+YQhnJH06xnip/PzrJP1gjPEbq33mqaeeip/97Geb8fVNBckxbl5i81lWRTpYU2xu+soTWgr0lEn+Xb/uiVvogKmgIGE9P2+r1GvX7HtmZ7165n3vM0MzN2dJ75UV076dnLTwy7PP2g196ZIbdDpKz52z9734ot2gGLHXXrOV40sv2U05N2fvlcwg0dgGBTdsm5OTtrqGGfXKFScrW1jw4z76qP2jZBb6AHI0//k/2zFjtBDa9LQZsMFBKwulA5iQ3eamh1FgOYVSm+oZ2GnJybDjgg6cMArO/sYNGwMKbMWiV8dQzfXii15FVCz6dYKDunDBjk3vBzuW11/3MOSTTzrZIRTSMzPmOF580b4TCovNTXOOg4P2nrU1mw+MH+WmVMZB+9Dd7VTsfX22C7t508bzrnc5Ky7nQNiEXRZJ+K4ucyjkJ1KmU5wGXEjXrnkIsloVzb17NjfoY1B2vrHhoUg6ylMG1XqQvR9pdsOZ1VvmSZ4JQSPYDCiHPQkIITwbY3yqkc/UEz56TVJRUlOcQozxzRDCtRDC22KMr0j6U+pQ5tWUvGxzc/+qB2UuVjyUhVIhRPiG+CvsmzgBjiHZShbDNDZmF+CXv2zhBOrGqWpCZOX0afvbSy/56m5lxYzFqVNmwEolcySUvJLAgyqDxGqaS2DHQnUPn8UZ4ax6e/dqI4yNeUJ2c9O1DsbHzRn29DgVws6Ob+8HB81xQqdBOev4uJ0DeYzubm+eooZ7etqM5cLC3kQjYRxCXCMjNhbI5jCGUFaQpKXD+c4dm1N4fkKwkNT8vI0VSunhYfvH74GRhzkWXQNW2TMz9pjfbnPTfw9W36xmKRt95BF3cvS3oGFMjH5kxClG2OFtbprBfcc7nPaZBjjJE/Np0hY6CnotoAlfWfFcAE2IkpfU0nDFnHDdVMPYmB8jbc4iFzQ76wzCtQBHFucAUWHqTMhNSV5YUM/x0tJ0rnsKNjoZVYcfQvhnsjDRmqTnQgifVOIYYozfd4Tv/V5Jv1iuPHpN0l89wrHaBriJWC2kYBdx+7bHJjFKs7NeoklHKlxBd+54zBbDMT5uhvzGDbuJ3/lOT9DSQf32t3u46vZtX/2TfAzBHn/xi54LQPCmt9eSjnRXr656dQu0G0NDLjZD8u/KFTPmVFdR6UTO5PXXXdLwwgWnX6ZMFQK7V15xLQG6ftfW7LvPnrX5uH5dbwnB44DRQmA1ShwcVlWSpgMDtnNZXramQTq7h4ftvOg+hlQPQ3PrlhP/vfmmGcj1dTsWDo2c0fKy0VBI/ptA5015JMJCOGLCZRQZLC+7oSNRTD9KanhTDYOZGWfBJYRDVdHdu75yZ2UP7QUVcoz92jXXQYAfikQw1zYJ9lQzubfXr2sM9uSkG8aUE4teCnbSB63Iq3XqQlSHols10Nnd1eX3WXYsXIuEXmv1IHE8yP+yFU4nZXdwVNTyacRrnpX08cxrtWNOByDG+JykhrY0JxGIyoewN7HEDoHmptVV3wJTXYRC186Oh464oeGkIYxBBRDJaUpKuSFmZuwmgbL7/Hl7jsGj5ntiwgww4ZL3v39vR+rCgj2n2enWLftuyi9ZcZ4/bzfPu95lx/n937fjLyw4rTYlfVNTLh+5uOgGiVLYJ590zQf6GvifJPKXvuTn/+STTnlBuSDjJu4NPxJVUISqlpZ8l9PVZeeBJgbhiWLRdgJXr9o8oQ0gOW0H34e0JEJHMZoToRP78mV3BlwfqSyp5DTcvIa2AzmgjQ3nweLa6u210FmhYP/geNrZ8RLdNNdA5zcd8DSowWNFEhqa8ulpz4nBP8U1RDMeoZuREdfi2N3d372cNmLScU0vCLmaw4DrVXLW20rvkZxKhQUCxIP8JjgZks+1vlPyMuT7xQlkUdUpxBh/TpJCCB+OMX4kfS2E8OHjHlinIL2I6OqkfvvNN50JlZuK5BvKZYuLflNDW4CBwzhOTnp8HsO1uupEbD09xqdDTLNYtJU1ginsNlgFk+B77TWvWiKMgRA7HcKS9wzQcUpPAZQIMIqmBG6EOdbXremI1bvkx6YqiMYuYvaEPUgqSzY3p055GWU65xg7qB8WF+098BXBOUVYhfMnOb+25qEZdg+S05Rj+CVvTiTU98532o4FEjli7FtbtnMgSY5j6euznAkOSrIxIrcKEygqYZSrQt8BzQX5hLQmv1j03MHqqo0DvQsEhrq6nLwwdcQkcWEovXbN8z0kikFaQFEqOQEjRQSErAD01jHadYxYFGEoHEwjSMtJOc8skNNMO5ipBKQ/g98gu7CrhPR4reQ6ajXqiX59h6zZLMV3VvjbAw0STTRBkSAlzwCpmOTVKhsbbvhY+dI8Rikpq7KRETOulJMOD7s40Pa2GSXKNLloqSShGY5wBHkBKoYgTyNWWizaDb605Cvis2d99UmYYnfXxkWD2NiYfY6y2WLRK4i++EX77ldfNWfGWOk7gKm1VHIqD+YSZldCGqnjnZ93w7WzYwaassozZ7z/4oUXPI+wseHNS+fOeaEAuYiFBTvXmzdt/L29Xp20smLz/ra32Xkir/rIIzZ+mtagIKEzO61ogciNhrOLF20+eI5Q0qlTNhejo/55eLCgZj93zqutuAZfecX7CM6fd3W6+XnbacEau7rqvQDveY+zmpZK9nm6r6GrrmS42WEhuITUKlVZPT17ldFSfixouKXayVn6FAYHfYc1OOiOoVqlTyVBHXjI6EJvpDmtmkDP/YZaOYUPSfrvJF0OIaTho2FJJ0pT4SSAFS2lgojEwN6KxN/amktpsoLq7/eYp+QdsxhdVs3oDRBKgYEUKgX0mzHu8AMtLHiX79aWOYlHHjHDRiJ3ZcVCJrBUUndNBzYd1CSBiakvLJhRm5hwVbdi0aqdYnSdZmrTz5zxipnVVTveG2/Y+0dHPW6Lehkr1zSGu7TkDXsh2Kq2q8t2ETduOKFasWi5jKtXbZcF/TYUBjQYQj997pyv9OniljwpiW4FFN+Sx9NxzNBhwANFhROd2evrfl4YWRq4CDlCc81OC6OXMmNSxry4aE4iNW68b2nJNb7ZAS4uevKXSiv4qliE0ODFewoF7/dAK4GSUVbdExMWOqPfgQqhCxdcbQ2dDBZH7BzTecxifd13yJRMc59RuAEQzEJTodp9yr16WMlLdBRKJXfI9xNq7RR+X9ItSVOS/lHy92VJLxznoDoRcPFLXkIp+Q29uGhGk67QoSEzHhcu7L+o5ua86xNmS4je4P6/etVi1ru7rk72/PNeWSGZUfmDP7AbFWZQdgckNclFUEtP7oBVHCtXpBLpYSAhTT5ieNiqWDY2rFwSDpzz520OJif38iKhM0zTWhpWo5+AZiti7cxT6jwpi4WKgrJFuKNu3LB/hEIGB637OkabPwTaMSi7u3bMGzecXgPHTCUR1NZpWAJnnZIHEu7p77f5LxQs0c25njmzv0GK3R8iR9PT7jxxLFSikV9aXrbxQl1OQ5vk+RJi4EtL9j6u054eN3Dr614KLHkCfmfH818sVBYX7T2s1sl3dXf7POOAEOghUQ3Is9UKH9HBTCEBBRqpYwaLi+7ICcdlQRUXOw/JmwF3d21MB1UPIZsLKvVadDJq5RSuhBCuS1qNMf7HFo6pI4HxqAb49rmxWOVQ9UDJJOEiYsIQr7GKpLmLckaI1wgNUcUzPOxaACSyYS0tFr3JTdpLmzA5aSvua9fspoGKmZuS80CLdnfXQwgYacoyJybsH87l3Dl7TpkuoZVCwXYb9EOsrHiVSleXGbzZWXOgzDM7MFbShMzS47M7uXDBci7sTmD57OuzJPadOzZnJJdnZ53ojwavFJWarqimoiLsjTc8Fo9uMcn2GG2ck5M2JuZ1fNxzNoTOdnbcuOEUydd0d9tc37hhn3vjDdsBIuZDAntoyHs2KG9FAGhw0I5BmXQaVyf/sLNjYb+dHQ8fAq4/wo5cb4RE0Z8YGrJrAkEkHMhBBpUS7O1tlyhlUUF+KB1LOvZqyIaBoOGQzAnW6mTOfk87tZSPCzV9YoxxN4SwFkIYjTEutmpQnQ5qvuk/YPt86ZI3Ul296rXmV644bQD6vIQ9WHlRjvjYY54wpVaa1SilkMSTUSU7f94Som+84VUoqX7Bzo4ZKKqkpqedQO/KFWfuhMuIxGeac5ib8zDU9LQZP5hfKblNG8CowYdATvJY8/y86yZDVUHugHLYuTnXmSas8La3eTiI5PDUlJ0n0qPsKAhdkKRO55pwX3e3rfgZcypXmhpPJC37+23ebt2y49O8Rc09df8LC3Yt0GmM00HvmuoWVOJYEacJdh6fPeslzoSS6KeA/pu5wJBCz42zmZz0vA7nlZ4jZa3sOlJeJq47cjV006dCPr29ni/CUderRUw1ExQqhYKXamcNP1Qa9XQ0AwgEs49rgXAi53q/oZ5E84akF0MIvyXpLX6iI/Yp3NdAQ1by1a/kq0aYVPv6zIDs7noljuSrQ0IGdC8TwwzBVm5Xrtj3jI+b4Q/BpSZZeUIrzIqmt9ea3riYR0bMkMF2Cl8ThgSpQ3oduClJ0n3xi/ZvYsLpGtbWLJfw2GP2/ps3XYKT8eAwQ7C/odVL6GRlxcY1NmbHg57i+nXn5PnCF7xvA7ptjD19GiFYTBoq8NSBzs97M9PEhD2GP6m/30NmY2MeLltddYoHQlWvvea5A+afxP3IiB2HZC9SlTCKkofheOyA5uediZacEoJNOHMIER9+2OcIFUKcqmTXHLsS+mcw7BjX9XWvMkOek9wXHc2EWNBFyBreNFxDNRhJ61RpkH4IFgyVwDnDpApSB5Z1CmnTXD1AAZHQ7Py8//YHOYejituk+tMnDfU4hV8r/8tRJ7hgUVRL0dfnouNsjfk7rJ3EKwldsKqD/+X6dd+WsyoiPIPe7ZkzXrED4ym6xfAsjY7a+06fNmNKmIO68t5e50kaGDCnRalkCHsNRFo+C9Uz8eMzZ5xjn5uA1TOMsBwjXSXj5JaWbJWNtCiGravLdwys/lmlMq6lJdesmJ6240HTsLNjK3e6mMldbG7acVdWfIwknhHYuXPHdnaLi55j4Lzo5aARbWXFdmk8pwP51i13dojFUxEEl9O9e57gh1KDUAdhxbk5K3OFcDB1Bhi4tMJL8jwBeuFQUVAiTWiO0BDd6Yj2pAYfUCU0NLS/oZNOZhhXV1bseIS50tJa6FpYBKW5A3aPzUA6FyzeSiXPqx0X0FiW9nI3nRQc6BToV8hRPwipsFpMAaUyK0s44InHv/yyPU6J2ChVpVGJpCaJtzREQAXSjRvO68+KKATfqeC4YLmcmLBQBDKer73mjViFgjeAYVhJlBJWGBgwZtGbN+35n/2zbuzoFIUuo7/fG71idAdJmSyNTe95j5dfot1cKpkTm511ZTPizbOzXjlTKtm5U+Y5Nmbfwe5H8mosdgn9/TY3OJa1NXeoVF0VCjbu7W1zzojYQHUOvQeLgbU1m7uXXrLXL192Uj3KMlOG3FJpb5IUA5lWTV2+7F3P7CRv3bLfI038cp6EGyWvFkIJ7g//0Iw/PRqUQ9MZTuPbxoY3MVJJh6FHK+K552w85855p3v2vujpsXxVb69fq3AIjY56yTEr6eM00Cx+2CmkFCHHCbqpedwxTiGE8Msxxr8UQnhRFTqYY4zvPtaRdThqbQth2ZT2dhyTwKSR5uzZyt3SfX0Wr3/72/c24IyO2s1KEpfqnrU1u/FGRrxMslBwA8AqCcPGFvqhh7xUlmQxK3kcA84vBCd3o/eCMA2SpFT0sIqEAgTZxrU1p8IgWZ7mISgh5fHSkldxSZ7ApA8hdYDMMTshyTt+yf9I3km9u+u9DNPT7hAnJqx8Fo1huKL4DpwPQPN3fHxvUhad3Ycfts9Bp0F8fmbGfocXXvAdZ6p7ITk1Ot26UDBASkgYi/OSXPENYj9yTGfPelhP8u51rhHyG5Sxstul2oe+EcmLJLJOgcoqjk9ugM8QXqMqijzWcYHdIXPDDuSgJrajgt4cHp801Nop0LX8Ta0YyIOEVBA8fQy5GvFW6tt7enzlCekdilfE96lguXTJ4/2QxHHD01DGzQYXDzFkSghPnfIVKE1b8/N2vMuXXU0N8Pgd77Au3okJOya16hhzVn+EfFiZDg87rTTJSG4W2DoZDyWfw8PG+IoKF0lwkqLLyzaHOzseSuvu3h96YPdCmSJVPdAwo2uwtubVNWfPmkF96CE7LnkGyZsWAYI71OhfuODnlVbekLvhd9zZsVBLGqZDXwEUixY2onx1ZMRzCRjTSgaOv8HPhJ725KRzIhGbp9oLiUp0EgjjUHFHL8m9e06DkgVhQcSVqC5jdwdx4uKiXYOtWEFXuo6bARpC4fpKUY+0bztxIHX2njeHMCVpPjbyoSbgpFJnHxZoK1OCylYezn2M6Isven4AXYRaoIa7t9ebyyQz5BigGL3JCiMLLw0hLdhFWd1K3gQl1e4+vX3bwx2QsKWJ7lu33LhOTe3V0qUclLwH/E0p3nzTdhPUvRPWoZEPo07Ig07lo4BktOQdzFmkSexsHomcA7oE9WBryxLkd+7YfKEZnYImKpxAo0ZtZ8dCYCGYIT/u8koMPtdFOt5SyQkkcfCnTzeeiGWXnFZXtRqEayXvbWkXmkqdHUL4akk/IemupL8v6edljWxdIYT/Psb4G0cZ7IMMyMYWF+2mRqSdxBdGjbBGSqVNXJekaIr0RiCRRQctxgoyMrRuCRnQBXz7trN4XrhgOw/KMKFARsNYcjK1/n6vJgnBV3+srIllY1x7evbXg8PdAx/SK6/Yc3SBU6BCd/eui61I3ohEEvQwNMbscqAXyZ57JeN8965TJyCuA27fNoPX0+ONiClIbKdMsYSl7t2r7kjQepb27g7qBc2EkvehHCcoZ66Eri7vnajW3SzZXBHurDRe+hgQlGpHdU9rl8zNR61b5p9L+mFJo5I+Jem/ijF+OoTwhKRfkpQ7hSpgJ8C2P9VNoJZ6edl5X+D0AUtL9n5WwcTvWU1JTptMiR/xUYDwzcKCq7hljdXAgBmjVAWMKh5WvisrzuFE5zDhBiQqSdZJ7sRI6G5t2fmkdNKElCqBXdKVK56QLJUscSmZc8RoDAzYroH3MLfQdZO4lPxc0BCu9buROKZjGTEczh15SIAjJLeCtjWGncoleKqyTmFhwc6VhH+x6PoUhJsqreLTc6MctZFV6VFCJ4uLHhJDZzp7DR4GdL5DZ50F9xFUH9l5yZ4Tv3tKanjcoChCat13NhO1nEIhxvibkhRC+NEY46clKcb4R+G4MzEdjvV1N/iUBfIcTdxsV+TgoMdU6Qvo6trLsEmVytqa17nDjAozKCgUnHeGeLpkz6l/X1hwwrOFBQszTU56hyt5B8kTmlQaSb67YCeSyjuOjXnZLMIrfX31GY3RUQ85kfcA7DwkNwx9fXZONIj19joB4cqKGRKSmOQrOC/OnblBmQwpS3YBlGkuLHiDYZpIpX6+r88rpra2fAfFTqFS2A15ydXVveEp4tEx2pjZOUI4SMiIChYoQViEQD9Sbc7pjqdXpF5ApiftFS/KXoOHQbFYu7GNkGc1VtPJSfsN+/rsdUq0abRrRQcyeapORS2nkG7i1jOvdfgG6XiRrgTpsExf293dKzDf0+NcLqzW4ftPk5FUoUApEILTQpO8UJp8AAAgAElEQVQAJKdAlcvUlIebJI9vw/VDBc2FC769x8BJHrahCxVdYxKgrM7ZUeA0hoednO6NN/xmHRqq3bQk2WtTU55sT5Ny0DEwtscft7HC15MK/sC5I9l7oNTI0p1TNQO1Mx3e9ESQmGdlnDqN9HfGSRSLHpLr7va8BsnULIpFJ0/M/uZQY6CKBhvq2pr9S6U2qby6e9eV9paWqhvqRpu9AD0kMXouimswBfX4kNc1wyBzbWZ/R4AQ0/y8V8ulJJE5DkYtp/CeEMKSpCCpv/xY5edtSuF0BsgBUIsu7X2+suKlnZKzn9K8Nj29l/MGEIIpFHw1TIVNT4/F1tF+XlkxQ7mx4dzx1JyzE4GmWnIDx6qT7077CODK4TWIzIpFL+2jyYnGq1u3PHFMDJtzrQUYOVPiMZLddNqSFE+36CTJ4d5hLiSbJ3o+0t+K1wgV7e46myeGjHJheJmqjZ+qGpr3CCNkDTPzmpLB0cOR7uyoYpH28v1cu+ahuSee8EY0uJcgkcNZpt9X6Xkj6O6265lSWJTesrsgxg71djNyFiF493al/I7kYTrJr4+UwiNFKvuaw1CLEO8+pHpqHViVVnoOeRwx0e7uvaGI7GdBCO4wEKRnN9DVZQaCxqqRETNgbO2pBiLMQEMXfysUjP5icdEM09veZt93+7YZaJqZsmyllBVSRslOhlVsCD42HE89AiWsQAcHXU+BRj00G1jV4yQAx8cR0rFMOW5qvKATSZXt2L1BTMfOi7JZOHIon8XgoGiHglnK3Q/TLJif36vdvbFhDvTll22sFy/62DC45IRSA0YeI3XUECHi5Eol27WxM6CfhabAenmI0u9kHgnjVKr06evzTumDFgH1grCcZNdlpbGnjALQlaTgd9vctHuEBtH7kdzuMDjEOiHHUVEsepkpK9p60zQh2OfJJdDhTMdpoWAXerbiiPg0VNvkNdLmt+Vl+5/eBck58re3jcsolT7EsG1tedgGURpq+4lpp9UxaXXGzo4dmxgwGBtzZk9q9+mGhTMKg0yoKwt6OLa37TzQEM4iXTHTTEcFEq8zR/xPx3Sp5ARpJHslz2GkzzFOUC9DCpiOF+4iKNChNsnG0M+e9YQ/IJeFw+f3nZ21f4WC569oUtvYaNwpzM15wpyquEqgQq5a/P8w6O72a7paWKy7u7q8Zvq7QTKJk8idgiF3Cm3CYW6UUslDMFTpdHfbjXfvnmsFnzplNwW8OpDZSfvr2dMbYXrajG7aSYzYCk4H0jsqdYhj0/ewve0lgdPTZnDgxEmTuxgseibGx71ccX3djp9qDDN2GFlv3vSdFpVWAN4gYt8DA64TUOnGR+AGeglW44QWKlWQsHuRPAHPzoTPkCSniUlygSBW0Oxw2I2wy0tDLZVCGxMT3mEMCJlQhADvEd3lOFjOc2ur8YQoSVvJ+0NqhV7qDcuwC0w7jCuBhUeWqbbS+yq9nv5u7Chg581haJtTCCF0S/qspBsxxrxrug7cveuEZxh+QAIUQ4FE5d27Xv2EXnQ1sINJBWmmprx6Z3bWV4ZQQCDsvrZmOw3yF9TXP/GESzvSO8ANmNIrkx9BnIe/pUaL+DWcOdvbNgfpaluy8BI9HzMznhivtrLs67PzTgFjZjXJxmLR5ocKn7k5N5BTU16Sml1JLy56voS8zvKyOZHTpxvrdM0avcFBD0mxU5BcOGZgwB0cuYZGQY8NHc7NiMVvbXlfzfZ2dY0FVvd0mh8G6e+W7npzONq5U/iwpJcl1TBTOVKwwklphQG17YAabRTMiAGfOmU3BLHs9BhwFvGvVDLjNTXlpZ8YIpLHfX1e4UFj3eamN5HRmyDtj18XCnZT3rzpug6ozUGFkGJz0/42M+OKb/RuTEx4CCj9HJVMjWJtzTQWJCMHfPLJ/e/hXNg18ZjKF2lviSni9ST/yXHwuVoOux5Q6ZQFQj71IFWVq/aZRo5XD9Lfq1bj2sKCLwCyLKwHAXlS8mB5VX11tMUphBDOS/pGST8m6W+0YwztRqnkrfB0NNOARQx/ZGRvUnZ83G7YzU17P8RhksfA4cChcYv46927Zpzu3LHvnZw0HYJ0xYiWQMrjD9fSxoYZOFaaNLNB7pZ2WdMDgUAOVNYYEpLFdKdub5uRfOEFZ668dctlMyl/XFjwqqZHH/Wkak+PGe6hIafhpgyxFtUBhgKJSYw3dB9IkR60Gg7B5gwq81odrTQq0qAHmR6d5rWandAzSMdaLyqda3q87m57PjvrYblUbvQwyF6T1QwxDYXZnWEzQR+IdPA8P+ho107hn0r625I6uMXjaEg7mgm5SF7zLdlNmq78WL0hRgNzp2Q3HwlXSkRZodMQF4LRG6+v2w3y7oTndnvbVsZUEhGKmJvzFSgxeskeX77sjUKQyO3smEN6803fOVBmyUqYcyfhR1NesWjfB5Uyam5s8VNeG8leQwIzRnOYxOWz4SDJV/SMEeppyQ07c9nXZ+eHKM5BoACAx1CBpMYbwr+0fl/yOPdrr1m/QqXEL78ZaDT8Q5c1QMApfX1+3vMjCDUdBVR0SX5NVkM9zgDyvsM4q/Rc8vLT2mi5UwghfJOkOzHGZ0MIH6jxvqclPS1JF+u5KzsMqbFArlDyapqsFsP2ths/Ytfp69ny1xTwG21vu14APPhgaclDG2nZKfkAaX+StlBwqgvKG3EeFy+akaY5jjJcjkPjHYR5GA96AHid7wzBBesxtsWiJx2RQE0/kwXUHZxvaogq6e7CQ3RQCS38UqjXpeyhWaSJenZZkhHTwRhaaVV9VF3g7LXCc3I4hPwgq0vDcYdFs7WM2XEcBmn3dp5HqI2GWFKb8oUh/Likb5e0I2uCG5H0qzHGb6v2mfuNJRVsbHiIByIwlNloXsM4LCy4QUNsJVvGyQq7GpUCEo5LS2a806QmsfyNDeuqXVmx5yMjbjyzoRh2EvDgTE3tZ4WsVnKaOgFEW1gFjo/b51LiPVBpbnBmhJmg/2CHg4NDECdG1wtI5x1wPMnFf2phdtZpQEZH93IukZ/Jrk6ptyfpfu2aG6w0N7S+vpcam0qiw4AdKTu3mzctTMcKHGc2M3O441cCVVYsdiiAYPGQ43jRVJbU40KM8Yck/ZAklXcKf7OWQ7ifkRqi1PillAnpe9fXvYqmkuGvZSwwPufOVeaqHx72CqH5eVvhUzo6PFw5Ns+KM21igl+I8VdrxMseL+3kpS+hErJzUyq5oQM0jKETkYq+nzrlTXZS5XkkSc/qHU3lakDus7fXG/Ykb2aTzNGl55zVdrhwwXdB6bnB3YNEJ7sMVOAaSZhmpTO7umy8lDFnx9gMpMcj0Q6h3XGzsuY4HPI+hTYCeoB0O18NEM5lO1obRa3uUpq4lpbcuENxUe1Yp045l1Gp5GRwaU4D/qBahnV01EkB6zV0qZYvK3/Ja/JJTmP8EPOpZ4W6tOSVQRAQVgO0Flm6hKzsYi2Dm/1dOLfVVWfb5XeAxbZQ2E/bUS+gVEEDOXVmxwUKFprZ4Zyj+WirU4gx/o6k32nnGNoJ6unpOzjIWB33dhuNZ3iFRkfN4FdyQpD29fbupc0mSZ7KNL76qj0+e7ZyAhg0GsNO1dzSXgWqoJDllJwaoV5Q6cVO6SBUGnt/v6+OG2UP5dxgPUUWVfJz4T2HzTEgpdqqxGtKOdGuklAkRHGKOfYj3ym0ESk7J6GawwLpzkqSk/WiXpWo5WWnxEg5fShfhUlV8gS6tJcCOzt2nGMjxhPiPthLU3R1edNeLa1fqLKzsonkBo4C1MMOg/Tc0hyFZOe6ulpZT6ARNJN+opHvbCfm5py25CRLYrYTuVNoIxBgSbt8D4ulpb3llccpRYhTSDl0QFZNbWrKCfiqJTCXlqyEFbrwep1aCLVLM6FEqAYSn5LTgB836Mold7K0ZP/GxtxxUSpbSV1Psvfx3uzxclQH+QzJGzXb7aROInKn0AasrtpqemioMoXCYZB2gh6loIyxpZU/adMTeQb+ZVf26bkhx/nII/46Gg4DA85FtLjoDo0qmFYgnafDzFmluToI0FxITnOOOtjFi04dQh8BSmSFQuVdXHq8g5r1HnTQi4KWdu4QKiN3Ci3G9rZ3Mm9v12aZbAQ0G8EiCZcM9Nj1AGH1dGwweoK+PqfkzoZcDjq3rS3vqF5eNkM3Pu76C2ndfivQ3+/OrdFO2kpztbho4YmBAXP21ejPqz2mu3tjw5v9Fhc94Q2RXT3HO05wTWxt2bmOjnZOfL6/P+9TOAi5U2ghCFcsLTm1QLPQ1eXhj7S7eWWl/oYfYsxp8nFlxVazOzsWCpqaslUxjKDZMfD5SueWVufQnCY5YVulnEKpZN+/sGA7i9On93/v5qbrRI+Pm2FF1S7LJJpFpVxD9niVPp+dq81N79mg6zobSuNcqYCitJjrQfIGOPo1Uhrzri4zxOm5cR0hvHTcoCt8ddUcOwUSrQi95WgNcqfQQtA1zGql2o101FhnVrCnXtDshcIX+s3QY8PRw0or/R6MI5+vtBorFKxPYmRkr14ztBCVznltzUswFxa8/DMFOQsUviiB5flBK8PsfKfHg/Sv0lxNTLjIDxrOvFZt3kPYuyvJksvhNBlz2mPR0+Nke+m5HZUvqJHrLQQvoaZ8+KidzzlOFvKfs4Xo6fHGqSy3DImvpSWPeVZaadYDBMpZsTdy03d32yoQdbPubtcGQCgHLQSMJVw+JH5RX6s2B9nkb/r5qam9Rgax+81NN5BZ0BFO8xzvT/mIKmF31ymv08YtJENrAZW68XEPHRWLlj+hCiuLSuy2WWQ/h8ME9Z5bvVhZ8b6Uqan6rhM618+e9Y78HPcPcqfQQoyN2So3KzpO5yuSk/39drOmCUw6WpGCPChP0NNj23ySlAc1ORGigEZCMkM3Pe30CinBW2qQEJLZ2DBSvYGBxmQeqeXnGGlIp6dHevjhvRrWKZDL5DX6CkLYO17EYZg71OqoRkmJ9mCnvX3bVubDwx7egbaDfMLCgu9cIPer5BBKJZfApNGOfEa1JHWl14eHnRuqGRU0lAzDVFuPgafctxqYa9T4jgpo1Zt1vBy1kTuFFqOSAUCGkW5lZCSJ1RYKZpzu3XOpy1On7H1ZfecU5BUIN1R7XypsMz5u33f3rr3/zTd9XHS/ZtHfb++jd4HGsXqdAtTb2VLalB8IhtH1dd+JpB3NqROiZDYET/gSgiIRjyMiN5ANSS0sON14oeA8SVBoQEk+Pm5zcveuOwoa/1KgzMbvMjCwn4cpRbVzk+x3mZ31XWetstt65p6dwlFoslMwtp6ew2lZpEidKbKnOY4XuVM4Aejrs5BNqWQx960t1weGsE0yQ7e9bUYYFTbJk79Z0KHc21s71JCGSnZ2vGoIym0MabWQSm+vGcfhYXNcKMDVi95eF6UHMXqjEZxFGIeUw4i5ScfG43R3wN/g3ZH2hruyK1B2Rtvb7jBSDeazZ/eGAFP6jErzhOQj5brkK6o562rnJvnKudp3NYKhoer5nMOgmWOT9nbJN+N4OQ5G7hROAKAcAIWCs5pC+Ts/76vjLMdOtoEMpE1OtYB2QrpiHh31mDmhnVoJTYSCzp2rLqdYC5WMMueF4A/PCaURu0eQCCDYUijsDQmtrnqehVV2JYcgeQVQmsgdGNj/u4DeXh9LpXnKNtJtbTmvUaXfKD237PHI8zSLVG5314kDt7f35zEaATxT6+vNKS/Oyp7mOH7kTuEEoqtrf0ggJUQbHrabheTmURuWyDmk6O1trIcCuc5mgRJbtKXRBsbYYMgr7UgqaSMjWM/uo1rJaPr+rGGs9LuAVKSnHsTo76+0UwjBfnN0r7POa2Tk6PKdYH7e5oTGQZzdYR1DvXQp9SIvd20tcqfQIcAAkOS7etUMZLFYvWwSuUvyEI1ge9sMUrHYvhVa1jAfVRv4OKRDdndth0TOpd4wDDTbOzvV53d11RsHs6WszUSleWmxzEqOE4TcKXQIUMSSzFCsrzsNcTWqDOL7Gxt72UzrweKiV+g0g5vpJKC31yVDm8UTRAmxdLDkZBYHGflWdStDpTEx4SSNOY/Sg4vcKXQg4MEvFMzIVTPY9BMcRoOhHinFlZW9il2Hwe6uy4w2QwLyIDSbRqPZkpMpCJvFeLxGulj0EE3OnZQjdwodiP5+qzgqlfbXi6PfLJmRZaVfj1O4edNKS0dHTbSeqqVKhjpG202EYM4hm3itF2trvjpdXbXvTs/hKEDCtFLJZ7NAT0OzhWPu3rXfrlAwx7m2Vl3bIkeOZiK/xNoEZCQPC6pdUiwumlGfm9srDF/v6vvOHT8OpZiVkqAbG/Y9vA+jeBigJifZce7c2dvzcFhQUSM5A2szkZaM9vc31yFAYSHZfFBamwoJHRXb23neIEdl5DuFFiNGpxagYqVZrI0YQQTaU2fAarxWv8L4uFWiDA7WdiTITI6OmuMYGrLvPEzzE1VOUEBQ476+fnDMvVRyXeNszB3taHicmomlJdcwmJ5u/uo9HTsVSvytGZifNwdTLDaPuj3H/YPcKbQY8/MW1lhbsxBQPYRt9WJw0JvVUqO+seFU2uPjnmvIfu9DD5kQzkHGB4K8wUEzuOxMDluKSCye3gMomWshRm9mq9bVOzXlKlvNBCv23V1zSs1OwsMBtbvrndDN4v/f2DCn1ttrY29WqC7H/YPcKbQY29tOA9HVVV9zWSUgYZkKq1QzyuwSJFvh8nxrq3IN+MqKk+plsbUlXb9ux4BygDAEx11fd33hRgwZxrAepJ2u6fllcRw8/0NDFjqDrE/ykE9fX/OS5VtbTj/SjGQzO1Qa1MbHc4dwVBzH795utPw0QggXJP1LSWcklSR9NMb4kVaP47DY3nb+ncOsEEdH7ea8dOlodefw9ku2Sq41loEBp2hA91fan9PY3XVun42Nygb67l3rkQDvepcdE6GalEcJtbYsoPQYHNxrlDY3nZr7IAbQQsGM8+Zm68snKwm1QGi4slJZ8+EwIJQmHS3/lD0GiffDLkhyGKBi4Xc/c6bdI2oO2uHbdiT9QIzxcyGEYUnPhhB+K8b4UhvG0jDu3vXuz9OnG19pDQw0pywyTRKmUpyV0N29N7zCKjtrsKGzqHVMqB/SkEZKUpby01RKZK6vO3Hc7q73XpRKXpq6tlbfDTYyYjcjtNrtWqml81Yrebu66oyyfX0HLwoGB90x1GPAV1a8Ga7SDmloyGlS8j6E5iD93e8XzeeW30YxxluSbpUfL4cQXpZ0TlJHOIUsNja8a7iVKy+6Z7u7K+ckdna803Z0dO/FSshoY8MMdF+fJ5fHxszIVjuXyUnp0UdttzEzs/912ExLpcaaswDKXj09B8s8psSBu7tHZ+Q8LHCMa2vVY//QbdNQODlp810rn9TVVT91xubm3rmolGNBGChHc5BqPjcaKj3JaGsULIRwSdJXSHqmneNoBHR/Qt98754ZQMIerdKq7e6uTTy3vOxljT09lXcnCwtmhKHJQCLyoJ3M2bPVXzuIjgGVMkjlALxCc3P2no2Ng2Ue05uw3bHxg8KJjLWry3dhzRzzSZqLBwnN5vw6CWibUwghDEn6FUnfH2NcqvD605KelqSLFy+2eHTVAbd++nxry/WJTwrSUErWUbHNLRRsBZtlXT0uxGghou3t/bsXyZzXxIRXSh3kYItFcyRIYp5kFAquWCY5lfZRsblpC5Publu1kuA/ycheByf9t3vQ0BanEEIoyhzCL8YYf7XSe2KMH5X0UUl66qmnTmybzcSEx7SbYViJ+R7VwcCk2tVlY2N1urDg4aHJSR/7Yb+vHolJsLXl5ZxUOGXR1+fd2vWswA6b8G8WiCXX89un1UrNwsqK54hQvDvpqOc6yNE+tKP6KEj6F5JejjH+41Z/f7NxkDRhI0AxrFlNURhVFMPSuvrVVdvxHGXspZKFe3Z26qOSKBa9R6KWIT+K4dzdtXE1Q7/4IOzs7NV4bodx6+szA4vz7wTUex3kaA/asVP4GknfLunFEMJz5b/9cIzx19swlhMFcgAYb8lu9qMaODqQu7q8WqKasDydrvWs/JH55DsOcgpdXda9TEPZxkb931UPdnZc4rIVJZcI7kjNbUJsBMWi5Zb6+jonl5BeB4Q5adLLnUT70Y7qo9+TdIKi7ycHg4MunLO15fw/B/UhHISBAS+FvHDBjHAlAzI/77rPp04dHFJKJSbrDVuQy4DwDQPBavcw54kzTUtDa1VQNQupjCpxfBxFKxzE2prlEyQLY3ZSwpPrQLIFEF3xx0lemKM+3Cc9ePcH0sofGsAkl448LAoF66moBOK7SD9KHoI5aAWflZisBxsbrk8s2ffcu+eGvVHjlhrGkRGbp2oSl81GVkZ1c9Mcq+QSoWtrZuyOo2Qx7eSmUx7yv07ILQDkVaXa3ek5WoPcKZxQDA87L81xVZOUSt7BvLZmYYiVFS9PbTa2t72yKEYz4GkSXGq8czd9f6nUuJNqJmhqLJXs3FKHVU/fRqMYGjKDiqYyNBagUxxDX59d4zs7+S7hJCB3CicUhcLxGLi1NSezS3MVMe6nb0DOk5v2qEi7fXt7vdlsd3cv1XcjoEuXx+0Guyxp7/k2i6Ya+c9CwZxMeo0sLZkTGhpqHy02Mq49PfX/HuhRHwe4hitRk+SojNwpPEDY3fWV69aWUUmMj5uTqNbcViq5nOdRdw89PXbzb2/vNRjU2B8GzTQoCAft7lr9fJY2g27rUqny6+g0S/Ya3d0wyDYDi4veRb+4aE6BZr8YbS7hlWoH7t2z35drphVVYLWQvYY7JRnfTuRO4QECspwpXXKtjkwMTAjNi4ef5Maq9XUnGVxa2k8JcfOmJUSHhip3lPf12d8wygd1dx8G/H7Ly2Zw793zTnq+L6Xa2Nw051EomOM97gZLrqtmXjNHQXq9n4TxdAJyp/AAoavLQjbQWhyEyUlnhH0QVljpyj+7C9jedvEimFAr4bicHl3oo6PmDEolGyPjLBbtt812dy8ve+lwvb/7UcYHF1A1GdcUGxvejX1cUqOTk75LyJ1Cfcidwn2GGPerrqVIDclBeNDYNHt6rGlwd3e/8YQXirLZVuYvaGrE8CNuhOpcOv5sAxuiRSHsDeXs7Pju4qhAyW1gwHZK9V4zKyvOg0UFXDOQ3gPd3Q/WNdwM5E7hPgO9Br29Fv7Y3rab40FY6TcDxWLlOHhXlzmMnZ3Wdw4T0tretu+n4a+eHM/IiFeT8X56RHp6js4su7vr5cVUsNWL/n7nDWvWnJZKrsg3OFibUDFHZeRO4T5CqeR6BpubdvNvbh6flvCDhoOMF2GaZocqBga8oucwmhHZMdMTsrV1dDlOlP+qFSvUAjueZsb76YyWbEy5U2gcuVO4j0C4Z23N/5e8TDJ3CseHlGKjv//w1VSVMDxs4apmGc7hYSeia8Y1MTFxeIGZZvfDFIvmaLa2mp/kf1CQO4X7DKOjvjoqFm2F2dt7/+jHnlTQayHtldFsFpq586im5X0UnJQkblYJMEfjyE3FfYy8Yad1IPm8vZ2vUHN0NnKnkCNHk5BTNOS4H5A7hRw5crQFaGzTCFhPCGp93fm58h3Z8SB3Cjly5GgLlpe9Wq6vr75Q5+KiFU1sb9v725krW101B9Xbe3zcTe1AXo+SI0cbgZzpgwj6QbKNdfV8pqvreJh8G8HyshUYrK0dT3FBu5DvFHLkaBO2t526fHy8s0RymgH0L7q761/xT0zY7qJYbH/FU2+vhbPonL5fkDuFDkKMdkPcbxfhg4pUznN9/cFzClLj4lEhnBzJzvFxqzgrFNrvoJqJPHzUQbh3z1aWs7MPbsjhfgL0EyGcbPbYHNVxEnYszUa+U+ggIFVYKrWHgydHc1FLJjVHjnahLTuFEMI3hBBeCSF8KYTwg+0YQydiZMRWJoODuUNoF1ZWLMHYLmWzHDmOGy3fKYQQuiX975I+KOm6pM+EED4eY3yp1WPpNNQSxMlx/Fhbcw1k1Ndy5Ljf0I6dwldK+lKM8bUY45akfyXpm9swjhw5GsL9FjvOkaMS2pFTOCfpWvL8uqSvasM4cuRoCP39LgrTSpGdHDlaiXY4hUrrrX0R2hDC05KeLj/dDCF84VhHdbyYkjTX7kEcAZ08/k4eu5SPv93o9PG/rdEPtMMpXJd0IXl+XtLN7JtijB+V9FFJCiF8Nsb4VGuG13zk428fOnnsUj7+duN+GH+jn2lHTuEzkh4LITwcQuiR9FckfbwN48iRI0eOHBm0fKcQY9wJIXyPpP8gqVvSz8QY/7DV48iRI0eOHPvRlua1GOOvS/r1Bj7y0eMaS4uQj7996OSxS/n4240Hbvwh5l04OXLkyJGjjJz7KEeOHDlyvIUT5xRCCD8TQriTlqCGECZCCL8VQvhi+f/xdo6xFqqM/0dCCDdCCM+V//25do6xGkIIF0IIvx1CeDmE8IchhA+X/94R819j/J0y/30hhD8IITxfHv//Wv77wyGEZ8rz/6/LBRonDjXG/7EQwuvJ/L+33WOthhBCdwjh8yGET5Sfd8Tcgwrjb3juT5xTkPQxSd+Q+dsPSvpkjPExSZ8sPz+p+Jj2j1+S/kmM8b3lf43kU1qJHUk/EGN8UtJXS/qfQwhvV+fMf7XxS50x/5uSvj7G+B5J75X0DSGEr5b0k7LxPyZpQdJfa+MYa6Ha+CXpbyXz/1z7hnggPizp5eR5p8w9yI5fanDuT5xTiDH+rqS7mT9/s6SfKz/+OUl/vqWDagBVxt8RiDHeijF+rvx4WXZxnVOHzH+N8XcEomGl/LRY/hclfb2kf1P++0me/2rj7wiEEM5L+kZJP11+HtQhcy/tH/9hceKcQhWcjjHekuzGl3SqzeM5DL4nhPBCObx0IsMvKUIIlyR9haRn1IHznxm/1CHzX97+PyfpjqTfkvRlSfdijAg+XtcJdnTZ8ccYmf8fK8//PwkhnBCZnH34p5L+tiTUSrTMFgkAAAbvSURBVCbVQXOv/eMHDc19pziFTsf/KekR2Zb6lqR/1N7h1EYIYUjSr0j6/hjjUrvH0ygqjL9j5j/GuBtjfK+s0/8rJT1Z6W2tHVX9yI4/hPBOST8k6QlJf0LShKS/08YhVkQI4Zsk3YkxPpv+ucJbT+TcVxm/dIi57xSncDuEMCNJ5f/vtHk8DSHGeLt8s5Qk/ZTsZj+RCCEUZQb1F2OMv1r+c8fMf6Xxd9L8gxjjPUm/I8uNjIUQ6CmqSAtz0pCM/xvKYb0YY9yU9LM6mfP/NZL+6xDCGzLm5q+Xrbw7Ze73jT+E8AuHmftOcQofl/Qd5cffIenft3EsDQODWsZfkHQiyf3KMdR/IenlGOM/Tl7qiPmvNv4Omv/pEMJY+XG/pD8ty4v8tqRvKb/tJM9/pfH/UbKgCLKY/Imb/xjjD8UYz8cYL8modz4VY/xWdcjcVxn/tx1m7k+cHGcI4ZckfUDSVAjhuqS/J+knJP1yCOGvSboq6S+2b4S1UWX8HyiXgkVJb0j6H9s2wNr4GknfLunFclxYkn5YnTP/1cb/oQ6Z/xlJPxdMiKpL0i/HGD8RQnhJ0r8KIfwDSZ+XOb6TiGrj/1QIYVoWjnlO0ne3c5AN4u+oM+a+Gn6x0bnPO5pz5MiRI8db6JTwUY4cOXLkaAFyp5AjR44cOd5C7hRy5MiRI8dbyJ1Cjhw5cuR4C7lTyJEjR44cbyF3CjnaghBCDCH8fPK8EEKYhd2xxuc+EEL4k8nzj4UQvqXWZ+oYyxtH+XwzEAyfCiGMtOG7vyeE8Fdb/b05TiZyp5CjXViV9M5yk5MkfVDSjTo+9wFJf/KgN9WDsiE+KffAn5P0/HHSipT7ByrhZyR933F9b47Owkm5IXI8mPj/ZKyOkvQhSb/EC8E0HP5dmcjr0yGEd5dJ7r5b0l8vc8N/Xfnt7w8h/H4I4bV01xBC+FshhM+UjwG3/6Vgegv/h6TPSbogabb82mAI4deC6QF8IYTwl7MDDiH8D+VjPh9C+JUQwkD574+Ux/mZEMKPhhBWao2jAr5V5W7ZEMLfD2UtiPLzHwshfF+tY5Xn6tlgOgZPJ39fKY/nGUnvCyH8RAjhpfLn/6EkxRjXJL0RQjiJ9BM5Wo0YY/4v/9fyf5JWJL1bRkvcJ+u2/ICkT5Rf/2eS/l758ddLeq78+Eck/c3kOB+T9P/IFjhvl/Sl8t//jEyfNpRf+4Sk90u6JGOR/OoKY/pvJf1U8ny0wnsmk8f/QNL3lh9/QtKHyo+/W9JKrXFUOO4VScPlx5ckfa78uEvGlDpZ61iSJsr/98uoDCbLz6Okv8R7JL0ib1odS77/f5FpUbT92sj/tfdfvlPI0TbEGF+QGcAPScoK33ytpJ8vv+9TkiZDCKNVDvXvYoylGONLkk6X//Znyv8+L9sRPCHpsfJrV2KMn65wnBcl/ekQwk+GEL4uxrhY4T3vDCH8pxDCi7LV/TvKf3+fzDlJ0v+dvL/WOFJMRNOAUIzxDUnzIYSv4LMxxvkDjvV9IYTnJX1atvvh77sygkBJWpK0IemnQwj/jaS15PvvSDpbYVw5HjCcOO6jHA8cPi7pH8p2CZPJ3xuhLd6s8Lkg6cdjjP9X+sZyCGq10kFijK+GEP64LL7/4yGE34wx/mjmbR+T9OdjjM+HEL6zPO5aqDiOCtgJIXRFY3KVTCjlOyWdkcX8a53TB2Tkc++LMa6FEH5HtvuSpI0Y4275/HbKIaI/JSNN+x7ZLkzl968fMMYcDwDynUKOduNnJP1ojPHFzN9/V7YSx+jNRUvCLksaruO4/0HSdwXTVlAI4VwIoaY4UAjhrKS1GOMvyBzVH6vwtmFJt4JRdH9r8vdPy8JPkhncRsfxiqTLyfN/K5N1/RPlY9Q61qikhbJDeEJGt13p/IZkIbFfl/T9Mn0J8LhOIHtpjtYj3ynkaCtijNclfaTCSz8i6WdDCC/IwhxQd/+/kv5NCOGbJX1vjeP+ZgjhSUn/JYQgWQ7j22ThlGp4l6T/LYRQkrQt6X+q8J6/K1NzuyILN+Ggvl/SL4QQfkDSr0laPGAcWU2KX5PtOr5U/txWCOG3Zcpfuwcc6zckfXd5rl6ROahKGJb070MIfbJdx19PXvsaSdWS4DkeIOQsqTlyNAHlKqT1GGMMIfwVWdL5mxv4/Iykfxlj/GD5eZcsb/AXY4xfPJZB+3d/haS/EWP89uP8nhydgXynkCNHc/DHJf3zYEv4e5K+q5EPxxhvhRB+qty8dl5WWfRvj9shlDEl2wHlyJHvFHLkyJEjhyNPNOfIkSNHjreQO4UcOXLkyPEWcqeQI0eOHDneQu4UcuTIkSPHW8idQo4cOXLkeAu5U8iRI0eOHG/h/wco8tWGsBvr2wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.Scatter(ages, weights, color='blue', alpha=0.1, s=10)\n",
    "thinkplot.Plot(fit_xs, fit_ys, color='white', linewidth=3)\n",
    "thinkplot.Plot(fit_xs, fit_ys, color='red', linewidth=2)\n",
    "thinkplot.Config(xlabel=\"Mother's age (years)\",\n",
    "                 ylabel='Birth weight (lbs)',\n",
    "                 axis=[10, 45, 0, 15],\n",
    "                 legend=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Residuals\n",
    "\n",
    "The following functon computes the residuals."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def Residuals(xs, ys, inter, slope):\n",
    "    xs = np.asarray(xs)\n",
    "    ys = np.asarray(ys)\n",
    "    res = ys - (inter + slope * xs)\n",
    "    return res"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Now we can add the residuals as a column in the DataFrame."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "live['residual'] = Residuals(ages, weights, inter, slope)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "To visualize the residuals, I'll split the respondents into groups by age, then plot the percentiles of the residuals versus the average age in each group.\n",
    "\n",
    "First I'll make the groups and compute the average age in each group."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[15.212333333333335,\n",
       " 17.740359281437126,\n",
       " 20.506304824561404,\n",
       " 23.455752212389378,\n",
       " 26.435156146179406,\n",
       " 29.411177432542924,\n",
       " 32.30232530120482,\n",
       " 35.240273631840786,\n",
       " 38.10876470588235,\n",
       " 40.91205882352941]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bins = np.arange(10, 48, 3)\n",
    "indices = np.digitize(live.agepreg, bins)\n",
    "groups = live.groupby(indices)\n",
    "\n",
    "age_means = [group.agepreg.mean() for _, group in groups][1:-1]\n",
    "age_means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Next I'll compute the CDF of the residuals in each group."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "cdfs = [thinkstats2.Cdf(group.residual) for _, group in groups][1:-1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The following function plots percentiles of the residuals against the average age in each group."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def PlotPercentiles(age_means, cdfs):\n",
    "    thinkplot.PrePlot(3)\n",
    "    for percent in [75, 50, 25]:\n",
    "        weight_percentiles = [cdf.Percentile(percent) for cdf in cdfs]\n",
    "        label = '%dth' % percent\n",
    "        thinkplot.Plot(age_means, weight_percentiles, label=label)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following figure shows the 25th, 50th, and 75th percentiles.\n",
    "\n",
    "Curvature in the residuals suggests a non-linear relationship."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "PlotPercentiles(age_means, cdfs)\n",
    "\n",
    "thinkplot.Config(xlabel=\"Mother's age (years)\",\n",
    "                 ylabel='Residual (lbs)',\n",
    "                 xlim=[10, 45])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Sampling distribution\n",
    "\n",
    "To estimate the sampling distribution of `inter` and `slope`, I'll use resampling."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def SampleRows(df, nrows, replace=False):\n",
    "    \"\"\"Choose a sample of rows from a DataFrame.\n",
    "\n",
    "    df: DataFrame\n",
    "    nrows: number of rows\n",
    "    replace: whether to sample with replacement\n",
    "\n",
    "    returns: DataDf\n",
    "    \"\"\"\n",
    "    indices = np.random.choice(df.index, nrows, replace=replace)\n",
    "    sample = df.loc[indices]\n",
    "    return sample\n",
    "\n",
    "def ResampleRows(df):\n",
    "    \"\"\"Resamples rows from a DataFrame.\n",
    "\n",
    "    df: DataFrame\n",
    "\n",
    "    returns: DataFrame\n",
    "    \"\"\"\n",
    "    return SampleRows(df, len(df), replace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The following function resamples the given dataframe and returns lists of estimates for `inter` and `slope`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def SamplingDistributions(live, iters=101):\n",
    "    t = []\n",
    "    for _ in range(iters):\n",
    "        sample = ResampleRows(live)\n",
    "        ages = sample.agepreg\n",
    "        weights = sample.totalwgt_lb\n",
    "        estimates = LeastSquares(ages, weights)\n",
    "        t.append(estimates)\n",
    "\n",
    "    inters, slopes = zip(*t)\n",
    "    return inters, slopes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Here's an example."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "inters, slopes = SamplingDistributions(live, iters=1001)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The following function takes a list of estimates and prints the mean, standard error, and 90% confidence interval."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def Summarize(estimates, actual=None):\n",
    "    mean = Mean(estimates)\n",
    "    stderr = Std(estimates, mu=actual)\n",
    "    cdf = thinkstats2.Cdf(estimates)\n",
    "    ci = cdf.ConfidenceInterval(90)\n",
    "    print('mean, SE, CI', mean, stderr, ci)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Here's  the summary for `inter`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean, SE, CI 6.831577849135134 0.0716487265060226 (6.7168573183657, 6.947976272349873)\n"
     ]
    }
   ],
   "source": [
    "Summarize(inters)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "And for `slope`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean, SE, CI 0.01740790147806931 0.0028529752707106126 (0.012768537045967305, 0.02193491955982924)\n"
     ]
    }
   ],
   "source": [
    "Summarize(slopes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "**Exercise:** Use `ResampleRows` and generate a list of estimates for the mean birth weight.  Use `Summarize` to compute the SE and CI for these estimates."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Visualizing uncertainty\n",
    "\n",
    "To show the uncertainty of the estimated slope and intercept, we can generate a fitted line for each resampled estimate and plot them on top of each other."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for slope, inter in zip(slopes, inters):\n",
    "    fxs, fys = FitLine(age_means, inter, slope)\n",
    "    thinkplot.Plot(fxs, fys, color='gray', alpha=0.01)\n",
    "    \n",
    "thinkplot.Config(xlabel=\"Mother's age (years)\",\n",
    "                 ylabel='Residual (lbs)',\n",
    "                 xlim=[10, 45])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Or we can make a neater (and more efficient plot) by computing fitted lines and finding percentiles of the fits for each value of the dependent variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def PlotConfidenceIntervals(xs, inters, slopes, percent=90, **options):\n",
    "    fys_seq = []\n",
    "    for inter, slope in zip(inters, slopes):\n",
    "        fxs, fys = FitLine(xs, inter, slope)\n",
    "        fys_seq.append(fys)\n",
    "\n",
    "    p = (100 - percent) / 2\n",
    "    percents = p, 100 - p\n",
    "    low, high = thinkstats2.PercentileRows(fys_seq, percents)\n",
    "    thinkplot.FillBetween(fxs, low, high, **options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "This example shows the confidence interval for the fitted values at each mother's age."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "PlotConfidenceIntervals(age_means, inters, slopes, percent=90, \n",
    "                        color='gray', alpha=0.3, label='90% CI')\n",
    "PlotConfidenceIntervals(age_means, inters, slopes, percent=50,\n",
    "                        color='gray', alpha=0.5, label='50% CI')\n",
    "\n",
    "thinkplot.Config(xlabel=\"Mother's age (years)\",\n",
    "                 ylabel='Residual (lbs)',\n",
    "                 xlim=[10, 45])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Coefficient of determination\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The coefficient compares the variance of the residuals to the variance of the dependent variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "def CoefDetermination(ys, res):\n",
    "    return 1 - Var(res) / Var(ys)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For birth weight and mother's age $R^2$ is very small, indicating that the mother's age predicts a small part of the variance in birth weight."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.004738115474710258"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inter, slope = LeastSquares(ages, weights)\n",
    "res = Residuals(ages, weights, inter, slope)\n",
    "r2 = CoefDetermination(weights, res)\n",
    "r2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "We can confirm that $R^2 = \\rho^2$:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "rho 0.06883397035410908\n",
      "R 0.06883397035410828\n"
     ]
    }
   ],
   "source": [
    "print('rho', thinkstats2.Corr(ages, weights))\n",
    "print('R', np.sqrt(r2))    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "To express predictive power, I think it's useful to compare the standard deviation of the residuals to the standard deviation of the dependent variable, as a measure RMSE if you try to guess birth weight with and without taking into account mother's age."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Std(ys) 1.4082155338406197\n",
      "Std(res) 1.4048754287857832\n"
     ]
    }
   ],
   "source": [
    "print('Std(ys)', Std(weights))\n",
    "print('Std(res)', Std(res))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "As another example of the same idea, here's how much we can improve guesses about IQ if we know someone's SAT scores."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10.409610943738484"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var_ys = 15**2\n",
    "rho = 0.72\n",
    "r2 = rho**2\n",
    "var_res = (1 - r2) * var_ys\n",
    "std_res = np.sqrt(var_res)\n",
    "std_res"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Hypothesis testing with slopes\n",
    "\n",
    "Here's a `HypothesisTest` that uses permutation to test whether the observed slope is statistically significant."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "class SlopeTest(thinkstats2.HypothesisTest):\n",
    "\n",
    "    def TestStatistic(self, data):\n",
    "        ages, weights = data\n",
    "        _, slope = thinkstats2.LeastSquares(ages, weights)\n",
    "        return slope\n",
    "\n",
    "    def MakeModel(self):\n",
    "        _, weights = self.data\n",
    "        self.ybar = weights.mean()\n",
    "        self.res = weights - self.ybar\n",
    "\n",
    "    def RunModel(self):\n",
    "        ages, _ = self.data\n",
    "        weights = self.ybar + np.random.permutation(self.res)\n",
    "        return ages, weights"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "And it is."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ht = SlopeTest((ages, weights))\n",
    "pvalue = ht.PValue()\n",
    "pvalue"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Under the null hypothesis, the largest slope we observe after 1000 tries is substantially less than the observed value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.017453851471802753, 0.007848978275500441)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ht.actual, ht.MaxTestStat()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "We can also use resampling to estimate the sampling distribution of the slope."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "sampling_cdf = thinkstats2.Cdf(slopes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The distribution of slopes under the null hypothesis, and the sampling distribution of the slope under resampling, have the same shape, but one has mean at 0 and the other has mean at the observed slope.\n",
    "\n",
    "To compute a p-value, we can count how often the estimated slope under the null hypothesis exceeds the observed slope, or how often the estimated slope under resampling falls below 0."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.PrePlot(2)\n",
    "thinkplot.Plot([0, 0], [0, 1], color='0.8')\n",
    "ht.PlotCdf(label='null hypothesis')\n",
    "\n",
    "thinkplot.Cdf(sampling_cdf, label='sampling distribution')\n",
    "\n",
    "thinkplot.Config(xlabel='slope (lbs / year)',\n",
    "                   ylabel='CDF',\n",
    "                   xlim=[-0.03, 0.03],\n",
    "                   legend=True, loc='upper left')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Here's how to get a p-value from the sampling distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pvalue = sampling_cdf[0]\n",
    "pvalue"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Resampling with weights\n",
    "\n",
    "Resampling provides a convenient way to take into account the sampling weights associated with respondents in a stratified survey design.\n",
    "\n",
    "The following function resamples rows with probabilities proportional to weights."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "def ResampleRowsWeighted(df, column='finalwgt'):\n",
    "    weights = df[column]\n",
    "    cdf = thinkstats2.Cdf(dict(weights))\n",
    "    indices = cdf.Sample(len(weights))\n",
    "    sample = df.loc[indices]\n",
    "    return sample"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can use it to estimate the mean birthweight and compute SE and CI."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean, SE, CI 7.348823785682672 0.015312980634443476 (7.324235173710998, 7.373298849302943)\n"
     ]
    }
   ],
   "source": [
    "iters = 100\n",
    "estimates = [ResampleRowsWeighted(live).totalwgt_lb.mean()\n",
    "             for _ in range(iters)]\n",
    "Summarize(estimates)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "And here's what the same calculation looks like if we ignore the weights."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean, SE, CI 7.2679122870104 0.013850235571584563 (7.2415841447222835, 7.288282805930516)\n"
     ]
    }
   ],
   "source": [
    "estimates = [thinkstats2.ResampleRows(live).totalwgt_lb.mean()\n",
    "             for _ in range(iters)]\n",
    "Summarize(estimates)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The difference is non-negligible, which suggests that there are differences in birth weight between the strata in the survey."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercises\n",
    "\n",
    "**Exercise:** Using the data from the BRFSS, compute the linear least squares fit for log(weight) versus height. How would you best present the estimated parameters for a model like this where one of the variables is log-transformed? If you were trying to guess someone’s weight, how much would it help to know their height?\n",
    "\n",
    "Like the NSFG, the BRFSS oversamples some groups and provides a sampling weight for each respondent. In the BRFSS data, the variable name for these weights is totalwt. Use resampling, with and without weights, to estimate the mean height of respondents in the BRFSS, the standard error of the mean, and a 90% confidence interval. How much does correct weighting affect the estimates?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Read the BRFSS data and extract heights and log weights."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "import brfss\n",
    "\n",
    "df = brfss.ReadBrfss(nrows=None)\n",
    "df = df.dropna(subset=['htm3', 'wtkg2'])\n",
    "heights, weights = df.htm3, df.wtkg2\n",
    "log_weights = np.log10(weights)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Estimate intercept and slope."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Make a scatter plot of the data and show the fitted line."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Make the same plot but apply the inverse transform to show weights on a linear (not log) scale."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot percentiles of the residuals."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute correlation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute coefficient of determination."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Confirm that $R^2 = \\rho^2$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute Std(ys), which is the RMSE of predictions that don't use height."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute Std(res), the RMSE of predictions that do use height."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "How much does height information reduce RMSE?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Use resampling to compute sampling distributions for inter and slope."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the sampling distribution of slope."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the p-value of the slope."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the 90% confidence interval of slope."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the mean of the sampling distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the standard deviation of the sampling distribution, which is the standard error."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Resample rows without weights, compute mean height, and summarize results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Resample rows with weights.  Note that the weight column in this dataset is called `finalwt`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution goes here"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
